2011-08-07 15 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

ここで言及する価値のあるものは、1つはフルあなたが再インストールする必要があるたびにきれいにして再構築してください。 –

0

@JohnField - 「『...』で議会のフルネームを決定することができませんでした」 - - 私は同じエラーに遭遇し、ここで修正をリストアップしたかった、それ以外の場合は誰で同じ問題が発生します。

私の問題は、参照されたアセンブリへのProjectReferenceと、アセンブリを.vsixmanifestファイルのアセットとしてリストしたことでした。参照先のアセンブリに「出力先ディレクトリにコピー」アイテムを追加すると、VS SDKは、追加したアセンブリアセットがアセンブリ専用であると考えられるので混乱します。それは追加のCopyToOutputDirectoryアイテムを見て、それがアセンブリであると思ってロードしようとします。

修正プログラムは、アセンブリを.vsixmanifestの資産として削除することでした。プロジェクトが既に参照されているため、結果の.vsixにアセンブリが含まれているため、これは不要です。実際、AssetTypeの名前が「Microsoft.VisualStudio.Assembly」と不十分なのは、実際はテンプレートウィザードです。

関連する問題