8

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

http://msdn.microsoft.com/en-us/library/ms404859.aspx https://web.archive.org/web/20090218033835/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) -> (AfterCompile 目标) -> 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

谁能帮我解决这个问题。

谢谢和问候, 桑托什·库马尔·帕特罗

4

2 回答 2

9

这对我有用:

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

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

于 2013-08-29T13:59:56.963 回答
1

詹姆斯的回答帮助了我,但我仍然收到错误说明An error occurred while validating

我也必须这样做最后让它工作。对于 VS2015,添加注册表项HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild并将值设置为 0。

于 2019-09-30T19:50:34.867 回答