Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 无法引用VSIX部署模板中的向导程序集_Visual Studio 2010_Templates_Wizard - Fatal编程技术网

Visual studio 2010 无法引用VSIX部署模板中的向导程序集

Visual studio 2010 无法引用VSIX部署模板中的向导程序集,visual-studio-2010,templates,wizard,Visual Studio 2010,Templates,Wizard,我正在尝试为VisualStudio2010创建一个包含一些项目模板的VISX扩展。这些模板不是很复杂,但我想在创建过程中通过向导为它们公开一些额外的配置。我已成功设置VISX软件包,将模板部署到VS2010中所需的目录结构中,但在尝试配置和运行向导时,我收到一个错误,我在创建模板时会执行以下操作: 错误:此模板试图加载组件程序集 'My.Assembly,版本1.0.0.0,区域性=中性,PublicKeyToken= 我目前的配置如下: 所有项目都位于同一个解决方案中 VISX项目包括对包

我正在尝试为VisualStudio2010创建一个包含一些项目模板的VISX扩展。这些模板不是很复杂,但我想在创建过程中通过向导为它们公开一些额外的配置。我已成功设置VISX软件包,将模板部署到VS2010中所需的目录结构中,但在尝试配置和运行向导时,我收到一个错误,我在创建模板时会执行以下操作:

错误:此模板试图加载组件程序集 'My.Assembly,版本1.0.0.0,区域性=中性,PublicKeyToken=

我目前的配置如下:

  • 所有项目都位于同一个解决方案中
  • VISX项目包括对包含向导的项目和每个模板的项目引用
  • 每个模板都是从一个项目模板(…令人困惑的术语)构建的
  • 它们通过.vsixmanifest设计器作为内容添加,并引用项目
  • 每个.vstemplate文件都有一个WizardExtension元素,指向IWizard实现并包含程序集
  • 向导程序集已签名
.vstemplate文件指向它们的向导,如下所示:

My.Assembly,版本=1.0.0.1,区域性=neutral,PublicKeyToken=a494da9e6e53f845,自定义=null

My.Assembly.Wizard

据我所知,这就是我应该怎么做的。到底出了什么问题?看起来它找不到程序集。为了使程序集对模板可见,我还需要采取其他步骤吗?程序集在安装时被部署到扩展文件夹中(我验证了这一点),所以它至少能够完成。我是否需要对.vstemplate文件执行一些特殊操作,以告诉它们在extensions文件夹和GAC中查找?我是不是错过了什么

请注意,我在internet上发现了几个页面,说明我必须手动或使用脚本对程序集进行GAC。但是,很少有人有我的确切场景(VISX项目引用的项目模板,大多数示例使用通过项目模板向导导出的常规项目,并将其包转储到VISX文件夹结构中)。我发现唯一一个与我的场景相符的例子是微软的一个例子。我试着与之匹配,但可惜它仍然不起作用。在这个问题上,我尝试重新定位我下载的项目以供参考,但我无法再次找到它


使用脚本是我们以前做过的,但我想尝试使用VISX包让事情变得更干净一点。我希望避免这种情况,但如果必须编写VISX脚本才能将模板安装到GAC,我可以这样做。

通过VSIX扩展部署基于向导的项目模板时,最好在.vstemplate中使用短名称程序集。这可以避免GAC部署

在您的情况下,它应该是:

<WizardExtension>
 <Assembly>My.Assembly</Assembly>
 <FullClassName>My.Assembly.Wizard</FullClassName>
</WizardExtension>

我的.大会
My.Assembly.Wizard

我正在使用VS2015,时断时续地面对这个问题。当我开始用向导实现构建VSIX项目时,在一段时间(4-6周)内,一切都很正常,但突然它停止了工作。几周后,它将重新开始工作,并在没有通知的情况下停止工作。我花了很长时间才找到解决办法(仍然不知道它为什么突然停止)

这就是我的VSIX项目的构建方式

  • 我有VSIX项目、项目模板和向导实现 同样的解决方案
  • VSIX和向导实现在同一个项目中
  • 将VSIX项目dll和项目模板作为资产添加到VSIX项目source.extension.vsixmanifest中
  • 项目模板*.vstemplate具有向导部分,该部分引用具有强名称的VSIX项目:
    我遇到了同样的问题,但当我更新向导项目的
    AssemblyVersion
    时,我的问题就暴露了出来。我检查了清单文件中的版本,它们应该匹配

    我只是进入
    C:\Users\Albert\AppData\Local\Microsoft\VisualStudio\16.0\u c34033cexp\Extensions
    ,找到了我的扩展并将其删除。现在它又起作用了


    (请注意,我确实在AssemblyInfo文件中找到了一些其他人,因为我更改了公司名称等,所以可能是周围的旧公司也造成了这种情况)

    很抱歉,这花了这么长时间才恢复,直到我解决了问题后,我才真正看到答案。这确实是这个问题的一部分,尽管还存在一些其他配置问题(即需要通过UI添加项目引用,出于某些原因,手动编辑配置文件将不起作用)。我接受,因为这是主要问题。如果你愿意,我想你可以提供任何详细信息供讨论。至少今年我为我们公司的产品做初学者工具包时遇到了很多问题。这对我没有帮助。一切都很顺利,我突然发现了这个错误。我已经尝试重新启动了几乎所有在我控制下的东西。非常感谢您的任何意见。
    <WizardExtension>
        <Assembly>Test.Template.TemplateInstallerWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=30ab381f68dc4f5e</Assembly>
        <FullClassName>Test.Template.TemplateInstallerWizard.WizardImplementation</FullClassName>
      </WizardExtension>
    
        <WizardExtension>
          <Assembly>Test.Template.TemplateInstallerWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</Assembly>
      <FullClassName>Test.Template.TemplateInstallerWizard.WizardImplementation
    
    %appdata%\..\Local\Microsoft\VisualStudio\14.0\Extensions\<some_temp_folder>