4

我正在创建一个 VS2010 扩展(我们称之为MyExtension)。此扩展的 UI 位于不同的程序集 ( MyExtension.UI) 中,扩展项目仅包含样板代码以从菜单命令调用 UI。

MyExtension.UI包含本地化资源(例如fr\MyExtensions.UI.resources.dll),但 VSIX 包不包含这些资源(尽管它们存在于 bin\Debug 目录中)。

我应该如何告诉 VS 将这些资源包含在 VSIX 包中?我查看了 .vsixmanifest 设计器,但找不到合适的选项...

4

2 回答 2

5

这实际上是一个错误,将在未来的版本中解决。幸运的是,有一个简单的解决方法:

  1. 在解决方案资源管理器中选择“MyExtension.UI”的项目引用节点并查看属性 (F4)
  2. 将“VSIX 中包含的输出组”的值更改为以下内容:BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup
于 2011-08-08T05:13:49.880 回答
0

@JohnField - 我遇到了同样的错误 - “无法确定'...'处的程序集的全名” - 并想在此处列出修复程序,以防其他人遇到同样的问题。

我的问题是我对引用的程序集有一个 ProjectReference 并且我在我的 .vsixmanifest 文件中将程序集列为资产。当您将“复制到输出目录”项添加到引用的程序集时,VS SDK 会感到困惑,因为它认为您添加的程序集资产仅用于程序集。它看到额外的 CopyToOutputDirectory 项,并认为它是一个程序集并尝试加载它。

修复方法是将程序集作为 .vsixmanifest 中的资产删除。这不是必需的,因为该项目已被引用,其中包括生成的 .vsix 中的程序集。实际上,不恰当的 AssetType 名称“Microsoft.VisualStudio.Assembly”实际上是用于模板向导。

于 2015-02-28T22:36:35.310 回答