我想.vdproj
使用devenv
命令提示符中的命令从文件生成 MSI 文件。此命令运行良好,但未生成 MSI 文件。怎么了?
我应该在环境变量中设置什么,或者有没有其他方法可以从.vdproj
文件生成 MSI?
我想.vdproj
使用devenv
命令提示符中的命令从文件生成 MSI 文件。此命令运行良好,但未生成 MSI 文件。怎么了?
我应该在环境变量中设置什么,或者有没有其他方法可以从.vdproj
文件生成 MSI?
这通常(根据我的经验!)是由于没有针对正确的构建配置造成的。在 Visual Studio 中,在解决方案级别,您可以转到Build
菜单并选择Configuration Manager
. 确保对于所有适用的配置(通过Active Solution Configuration
下拉菜单选择),安装程序项目在Build
列中都有一个勾号。
现在您需要确保在调用 devenv 时您传递了适当的构建配置(即,已Build
为 setup 项目打勾的配置),如下所示:
C:\PathToVisualStudio\devenv.exe /Rebuild Release C:\PathToProject\ProjectName.sln" /Out "PathToProject\vs_errors.txt"
(在这个例子中,Release
是我的目标构建配置)
此命令还将 Visual Studio 的输出记录到与您的解决方案在同一文件夹中调用的文本文件vs_errors.txt
中,以便您可以查看此文件以确定是否有任何其他原因导致安装项目无法构建。
上面的脚本对我有用,试试吧,让我知道它是否适合你。你几乎可以有任何配置。我用过Release|x86
。只需用您的配置替换该行,它应该可以工作。确保您使用的任何配置都存在于.sln
文件或.csproj
文件中,否则您可能会收到有关无效配置的错误。希望这可以帮助。
<target name="BuildMsi">
<echo message="Creating installables (.msi) for MyTestApplication, please wait..."/>
<exec program="c:\program files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe">
<arg value="c:\My app\My_Test_solution.sln"/>
<arg value="/build"/>
<arg value="Release|x86" />
<arg value="/project"/>
<arg value="c:\My app\setup\My_Test_solution.vdproj"/>
</exec>
</target>
我的情况是一样的,用 /project 给出项目名称有助于生成 .msi 文件,
devenv /build Release /project SDK-Deployment SDK-Deployment.vdproj
我不认为 msi 会从 devenv.com 生成,您可以选择 wix 和 nant 来创建安装程序。
Nant 有一个任务,msi 任务,但它需要 micrsoft cabinet sdk,无法下载。
阅读此内容以获取更多详细信息从 .vdproj 构建没有 Devenv 的合并模块
ps 如果您找到另一种构建安装程序的方法,请分享。