2010-05-21 126 views
4

我想在命令提示符下使用devenv命令从.vdproj文件生成MSI文件。该命令运行良好,但没有生成MSI文件。哪里不对?在命令行中针对.vdproj运行devenv不会生成MSI

我应该在环境变量中设置什么,或者有没有其他方法可以从.vdproj文件生成MSI?

回答

0

我不认为msi会从devenv.com生成,你可以选择wix来创建安装程序。

南特有一个任务,msi任务,但它需要micrsoft内阁sdk,它不可用于下载。

阅读更多细节Build merge module without Devenv from .vdproj

附:如果您发现另一种构建安装程序的方式,请分享。

4

这通常是(以我的经验!)由于没有针对正确的构建配置而导致的。在Visual Studio中,在解决方案级别,您可以转至Build菜单并选择Configuration Manager。确保对于所有适用配置(通过Active Solution Configuration下拉列表选择),安装程序项目在Build列中有一个勾号。

现在,您需要确保在调用devenv的,当你通过适当的构建配置(即一个有Build打勾的安装项目)如下:

C:\PathToVisualStudio\devenv.exe /Rebuild Release C:\PathToProject\ProjectName.sln" /Out "PathToProject\vs_errors.txt" 

(在这个例子中,Release是我针对的生成配置)

该命令还记录的Visual Studio的输出到同一文件夹作为您的解决方案称为vs_errors.txt这样你就可以查看该文本文件,以确定是否有任何其他原因安装项目无法构建。

3

上面的脚本为我工作,尝试它,让我知道它是否适合你。你几乎可以有任何配置。我已经使用了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> 
1

我的情况是一样的,并与/项目给予项目名称与.msi文件生成的帮助下,

devenv /build Release /project SDK-Deployment SDK-Deployment.vdproj