2017-03-09 6 views
0

현재 C# VSIX 프로젝트에서 작업 중입니다. 이 솔루션에는 ItemTemplate 파일이있는 VSIX 프로젝트와 클래스 라이브러리로 출력하는 ProjectTemplate 프로젝트가 있습니다.Visual Studio VSIX 프로젝트 .vsix가 설치되어있을 때 projecttemplate 참조를 찾을 수 없습니다.

ProjectTemplate-project는 로컬 .dll 파일을 참조하고 VSIX 프로젝트는 ProjectTemplate-project를 참조합니다. 실험 인스턴스를 시작할 때 모든 것이 정상적으로 작동합니다. 릴리스 빌드를 만들고 내 컴퓨터에 설치하면 모든 것이 정상입니다. .vsix 파일을 다른 컴퓨터에 설치하면 모든 템플릿을 추가 할 수 있지만 프로젝트 템플릿은 .dll 참조를 더 이상 찾을 수 없습니다.

이미지를 게시 할 담당자가 충분하지 않지만 일반적인 오류나 지시문 또는 어셈블리 참조가 잘못되었습니다. (오류 코드 : CS0246)

참조가 깨지지 않게하려면 어떻게해야합니까?

projectTemplate에 대한 참조가 SideWaffle 확장자로 이루어 졌다는 점은 주목할 가치가 있습니다.

TL : DR : ProjectTemplate의 로컬 .dll 파일에 대한 참조가 다른 컴퓨터에서 .vsix 파일을 실행 한 후 중단됩니다.

편집 : 그래서 기본적으로 대상 컴퓨터에 .dll 파일을 배포하여 참조가 중단되지 않도록하려는 방법이 있습니다. 그러나 .vsix 파일 만 보내야 만합니다.

+0

하지만 dll은 다른 컴퓨터에 배포됩니까? – rene

+0

@rene 아니요 .vsix 파일 만 복사합니다. 나는 참조가 깨지지 않도록 대상 컴퓨터에 배포하기 위해 로컬 .dll 파일을 어떻게 포함시킬 수 있는지 궁금합니다. 나는 그 질문에서 그것을 분명히 할 것이다. – Erik

+0

어쩌면이 시도하십시오 : http://stackoverflow.com/questions/22630460/how-to-include-vsix-output-in-its-package – rene

답변

1

@rene 덕분에이 게시물은 How to include VSIX output in it's package?이고 일부는 주위를 둘러 보았습니다. 사실 이러한 VSIXProject 속성을 설정합니다 :


는 "로컬 배포에서 디버그 기호를 포함"
는 "VSIX 컨테이너에 조립 포함"
"출력 디렉토리에 복사 디버그 기호" "복사 출력 디렉터리에 출력을 구축"
"SIX 컨테이너에 디버그 기호 포함"

또한 .dll 파일을 VSIX 프로젝트와 ProjectTemplate-Project에 추가하십시오. 다른 컴퓨터에서 .vsix를 실행하면 ProjectTemplate을 사용하여 .dll을 새 프로젝트 폴더에 추가하고 참조의 올바른 경로 속성을 설정합니다.

+0

답을 표시하는 것을 잊지 마세요! 스택 오버플로에 오신 것을 환영합니다. –