2011-08-07 1 views
3

VS2010 확장을 만듭니다 (MyExtension이라고 부름). 이 확장에 대한 UI는 다른 어셈블리 (MyExtension.UI)에 있으며 확장 프로젝트에는 메뉴 명령에서 UI를 호출하는 상용구 코드 만 포함됩니다.VSIX 패키지에 참조 된 어셈블리의 지역화 된 리소스가 포함되어 있지 않습니다.

MyExtension.UI에는 현지화 된 리소스 (예 : fr\MyExtensions.UI.resources.dll)가 포함되어 있지만 VSIX 패키지는 이러한 리소스를 포함하지 않습니다 (bin \ Debug 디렉토리에 있음에도 불구하고).

VS에 이러한 리소스를 VSIX 패키지에 포함 시키려면 어떻게해야합니까? .vsixmanifest 디자이너를 살펴 봤지만 적절한 옵션을 찾을 수 없습니다 ...

답변

5

이것은 실제로 향후 릴리스에서 해결 될 버그입니다.

  1. 솔루션 탐색기에서 'MyExtension.UI'에 대한 프로젝트 참조 노드를 선택하고 속성 (F4)
  2. 변경 "VSIX에 포함 된 출력 그룹"에 대한 값을 보려면 : 다행히 간단한 해결 방법은 다음 BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup
+0

매력처럼 작동합니다. 감사합니다. –

+0

@Aaron Marten VSIX 솔루션에 리소스가있는 참조 된 어셈블리를 추가하려고하면 2012 년에도 여전히 "버그"입니다. 오류 : Microsoft.VsSDK.targets (118,5) : 오류 : 'resource.txt'에서 어셈블리의 전체 이름을 확인할 수 없습니다. – codingadventures

+0

여기서 언급 할 가치가있는 한 가지 점은 전체 작업을 수행해야하는 것 같습니다. 당신이 재설치를하고 싶을 때마다 깨끗하게하고 다시 만들어야합니다. –

0

@JohnField - "에서 국회 '...'의 전체 이름을 확인할 수 없습니다"- - 저도 같은 오류로 실행하고 여기에 수정을 나열하고 싶었 경우 다른 사람에 같은 문제가 발생합니다.

내 문제는 참조 된 어셈블리에 ProjectReference를 둘 다 가지고 있었고 어셈블리를 .vsixmanifest 파일에있는 자산으로 나열했기 때문입니다. 참조 된 어셈블리에 '출력 디렉토리로 복사'항목을 추가하면 추가 한 어셈블리 자산이 어셈블리에만 있다고 생각하기 때문에 VS SDK가 혼란 스럽습니다. 그것은 여분의 CopyToOutputDirectory 항목을보고 그것이 어셈블리라고 생각하고로드하려고 시도합니다.

수정 프로그램은 어셈블리를 .vsixmanifest에서 자산으로 제거하는 것이 었습니다. 프로젝트가 이미 참조되고 있으며 결과 .vsix에 어셈블리가 포함되므로이 작업은 필요하지 않습니다. 사실 AssetType "Microsoft.VisualStudio.Assembly"라는 가난한 이름은 실제로 템플릿 마법사 용입니다.

관련 문제