我正在尝试为包含一些项目模板的 Visual Studio 2010 创建一个 VISX 扩展。这些模板不是很复杂,但我想在创建过程中通过向导为它们公开一些额外的配置。我已成功设置我的 VISX 包以将模板部署到 VS2010 中我想要的目录结构,但是当我尝试配置和运行向导时,当我按照以下行创建模板时收到错误:
错误:此模板试图加载组件程序集 'My.Assembly,版本 1.0.0.0,Culture=neutral,PublicKeyToken=...
我目前的配置如下:
- 所有项目都在同一个解决方案中。
- VISX 项目包括对包含向导的项目和每个模板的项目引用。
- 每个模板都是从一个项目模板模板构建的(......令人困惑的术语)。
- 它们通过 .vsixmanifest 设计器作为内容添加,引用项目。
- 每个 .vstemplate 文件都有一个 WizardExtension 元素,指向 IWizard 实现并包含程序集。
- 向导程序集已签名。
.vstemplate 文件指向它们的向导,如下所示:
<向导扩展>
<Assembly>My.Assembly,版本=1.0.0.1,文化=中性,PublicKeyToken=a494da9e6e53f845,自定义=null </Assembly>
<FullClassName>My.Assembly.Wizard</FullClassName>
</WizardExtension>
据我所知,这就是我应该做的。到底出了什么问题?看起来它找不到程序集。为了使程序集对模板可见,我还需要采取任何其他步骤吗?该程序集在安装时被部署到扩展文件夹(我验证了这一点),所以它至少是成功的。我需要对 .vstemplate 文件做些什么特别的事情来告诉他们查看扩展文件夹和 GAC 吗?我是不是错过了什么?
请注意,我在互联网上找到了几个页面,说明我必须手动或使用脚本 GAC 程序集。然而,很少有人有我的确切情况(项目模板模板被 VISX 项目引用,大多数示例使用通过项目模板向导导出的常规项目并将其包转储到 VISX 文件夹结构中)。我发现唯一符合我的场景的是微软的一个例子。我试图匹配它,但可惜它仍然不起作用。我尝试重新定位我下载的项目以在此问题中引用,但我无法再次找到它。
使用脚本是我们之前的做法,但我想尝试使用 VISX 包让事情变得更简洁。我想避免这种情况,但如果必须编写 VISX 脚本以将模板安装到 GAC,我可以这样做。