Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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
C# 使用MSI安装程序部署VSIX_C#_Visual Studio_C# 4.0_Vsix - Fatal编程技术网

C# 使用MSI安装程序部署VSIX

C# 使用MSI安装程序部署VSIX,c#,visual-studio,c#-4.0,vsix,C#,Visual Studio,C# 4.0,Vsix,在“如何使用MSI安装程序安装VSIX”方面,有人能帮我吗 对于msi安装程序,我使用的是visual studio安装程序安装项目 当我将VSIX与扩展管理器一起使用时,它工作得很好 我想把它作为一个安装程序(使用msi)而不是使用enstension manager 或者任何安装和取消安装VSIX文件的最佳方法这不是建议的方案 在MSDN中,“您不能使用Windows Installer软件包(MSI)部署VSIX软件包。但是,您可以提取VSIX软件包的内容以进行MSI部署。本文档说明如何准

在“如何使用MSI安装程序安装VSIX”方面,有人能帮我吗

对于msi安装程序,我使用的是visual studio安装程序安装项目

当我将VSIX与扩展管理器一起使用时,它工作得很好

我想把它作为一个安装程序(使用msi)而不是使用enstension manager


或者任何安装和取消安装VSIX文件的最佳方法这不是建议的方案

在MSDN中,“您不能使用Windows Installer软件包(MSI)部署VSIX软件包。但是,您可以提取VSIX软件包的内容以进行MSI部署。本文档说明如何准备默认输出为VSIX软件包的项目,以便包含在安装项目中。”

以下是一些包含更多信息的页面:


添加有关如何实现此目标的更多信息:

您不能使用vsix本身,但可以将其解压缩(只需将vsix重命名为zip)并手动将所有文件添加到MSI中。如上所述,您需要确保包含vsixmanifest文件(它应该在vsix中),并确保将“InstalledByMsi”属性设置为true。如果您有pkgdef文件,请确保也包含该文件

同样,正如上面所说,所有这些文件都应该安装到

"%VSInstallDir%\Common7\Ide\Extensions\Your Company\Your Product\Version"
(您需要根据实际位置替换%VSInstallDir%。)

你问:

如何使用visual studio安装程序将一些文件放入非特殊文件夹

由标准Vsix安装程序安装的Vsix软件包将始终将所有文件放在“%VSInstallDir%\Common7\Ide\Extensions…”中的同一文件夹下,但由于您使用的是MSI,因此如果需要,您应该能够将其他文件放在其他位置

我自己也没有尝试过,但我已经使用vsix很多次了


我希望这有帮助

在我的例子中,我需要在管理模式下运行devenv/setup才能工作,然后它就可以完美地工作了


VS博客中的C:\Windows\system32>“C:\Program Files(x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe”/setup

第四点说将这些文件放在Visual Studio目录中。如何使用Visual Studio安装程序将一些文件放在非特殊文件夹中。Visual Studio安装程序是什么意思?你是说msi吗?正如Matt所说,这不是建议的方式,那么安装和卸载这些vsix文件的最佳方式是什么。