我使用继承MPF库(http://mpfproj11.codeplex.com/)的VSPackage项目创建新的自定义项目类型。结果我获得了.vsix,但我需要使用.msi添加这个项目类型。我正在使用Visual Studio 2010安装程序。在我的安装项目中,我将VS包的内容添加到.vsix所在的同一目录中,但我认为我需要将注册表放入新类型的项目,因为当我使用安装程序时,项目模板不会来在Visual Studio中,当我双击具有新项目类型的扩展名的文件并且无法识别它时。当我在安装vsix之后查看注册表时,这是我发现的不同之处。我在我的安装项目中添加了这些条目,但它还没有工作。我错过了其他的东西吗?
在projecttemplatedir中是我放置项目类型的.dll的目录,即vsixmifest和pkgdef。项目模板位于[User] \ Documents \ Visual Studio 2013 \ Templates \ ProjectTemplates \ [新项目类型的名称] \ [projecttemplate.zip]
最好的问候
PS:项目类型适用于VS 2013,但我使用的是VS 2010安装项目;)
答案 0 :(得分:2)
好的,首先是“不要”这样做:
通常,如果您通过MSI进行安装,则不应该执行任何特定于用户的操作 - 不要在HKEY_CURRENT_USER中写入,也不要在其Documents文件夹,LocalAppData或Visual Studio文件夹中写入等。如果您看到自己写作任何一个地方的文件或注册表项,应该是你提示你有更好的方法去做你想做的事情。对于你到目前为止所展示的内容,这为我提出了不止一些危险信号。
其次,不要将密钥写入12.0_Config。蜂巢的那一部分只不过是从注册表的其他部分构建的缓存和来自扩展的磁盘.pkgdef文件。它在任意数量的senarios中重建,包括安装新的扩展。你应该假设的任何写作都会随时被吹走。如果你需要在那里写东西,你应该(a)写入HKEY_LOCAL_MACHINE \ Software \ Microsoft \ VisualStudio \ [version]并运行devenv / setup或(2)[preferred]将你的密钥放在你的扩展中的.pkgdef中自动合并到12.0_Config。
现在dos:
你说你已经有了SDK生成的.vsix:你可以把项目模板放在那里。然后你可以在.vsixmanifest中注册这些模板,然后就可以了。这比使用Documents中的文件要容易得多 - 这就是用户的目录......不要去玩那个。
一旦你有一个.vsix可以完成你需要的大部分工作,你应该简单地把文件放在那里,然后将文件安装在C:\Program Files [(x86)]\Microsoft Visual Studio 12.0\Common7\IDE\Extensions
内的文件夹中。更好的是,您可能只想要WiX工具集来构建安装程序,因为它有built-in support来安装扩展。它也有built-in support用于调用“/ setup”进程,如果这也是你需要做的事情。较新版本的Visual Studio不再支持Visual Studio安装项目,因此最好从尚未过时的技术开始。 WiX甚至是我们在微软用来为Visual Studio本身进行设置工作的,所以它绝对可以胜任这项任务。
最后一点:几乎所有关于Visual Studio可扩展性的内容都可以直接使用VSIX来完成,所以假设在回退到MSI之前有一种很好的方法可以做到这一点。在内部,我们可以只使用VSIX注册整个C#和VB语言服务 - 它们非常强大。
答案 1 :(得分:0)
我在此链接中找到了答案Registering Project and Item Templates。我设置了projecttemplatedir条目 [User] \ Documents \ Visual Studio 2013 \ Templates \ ProjectTemplates [新项目类型的名称] [projecttemplate.zip],这是我放置项目模板的地方。