如何使用MSBuild构建Visual Studio安装项目

时间:2013-08-29 13:12:30

标签: visual-studio-2010 msbuild

我正在尝试使用MSBuild使用以下文章构建Visual Studio安装项目:

http://msdn.microsoft.com/en-us/library/ms404859.aspx

我已经按照上面文章中提到的所有步骤进行了操作,但在这种情况下不使用TFS。

我没有使用TFS选项,而是尝试创建Demo.proj文件并包含以下详细信息: ** - Demo.proj **

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="AfterCompile">
    <Exec Command="&quot;$(ProgramFiles)\Microsoft Visual Studio 9.0\Common7\IDE\devenv&quot; &quot;C:\Users\sapatro\Documents\visual studio 2010\Projects\HelloWorldTest\HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj&quot; /Build &quot;Debug|Any CPU&quot;"/>
    <Copy SourceFiles="C:\Users\sapatro\Documents\visual studio 2010\Projects\HelloWorldTest\HelloWorldTestInstaller\Debug\HelloWorldTestInstaller.msi; C:\Users\sapatro\Documents\visual studio 2010\Projects\HelloWorldTest\HelloWorldTestInstaller\Debug\setup.exe" DestinationFolder="$(OutDir)" />
  </Target>
</Project>

现在当我尝试cmd提示并尝试以下命令时:

msbuild DemoBuild.proj / target:AfterCompile

我收到以下错误:

构建失败。

“C:\ xxxxxxxxx \ Documents \ Visual Studio 2010 \ Projects \ HelloWorldTest \ DemoBuild.proj”(默认目标)(1) - &gt; (AfterCompile target) - &gt;   C:\ xxxxxxxxx \ Visual Studio 2010 \ Projects \ HelloWorldTest \ DemoBuild.proj(4,5):错误MSB3073:命令“”C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ devenv“” C:\ xxxxxxxxx \ Documents \ visual studio 2010 \ Projects \ HelloWorldTest \ HelloWorldTestInstaller \ HelloWorldTestInstaller.vdproj“/ Build”Debug | Any CPU“”退出代码1。

0 Warning(s)
1 Error(s)

时间流逝00:00:01.25

任何人都可以帮我解决这个问题。

谢谢&amp;问候, Santosh Kumar Patro

2 个答案:

答案 0 :(得分:7)

这对我有用:

<Exec Command="&quot;$(ProgramFiles)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com&quot; your.vdproj /build &quot;Debug|AnyCPU&quot;"/>

您不需要任何cpu中的空间,您需要调用devenv.com,还假设您已经存在这些构建配置?

答案 1 :(得分:1)

詹姆斯的回答帮助了我,但我仍然遇到错误,指出An error occurred while validating

我还必须做this并最终使它工作。对于VS2015,添加注册表项HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild并将其值设置为0。