WixProject中的MSBuild WPF项目失败

时间:2012-03-14 10:02:37

标签: msbuild wix

我需要在wixproj中运行MSBuild任务,例如

<!-- a.wixproj is calling msbuild on a.csproj -->
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="Default">
    <MSBuild Projects="..\A\a.csproj" Targets="Publish" />
  </Target>
</Project>

但是当在VS2010中构建时,它失败了:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2580,9): error MSB3113: Could not find file 'obj\x86\Debug\a.exe'.

然后使用来自wix项目文件夹的msbuild.exe a.wixproj在命令行中构建OK。解决方案可能看起来像,

Solution A
--CSProject A (**a WPF project**)
----a.csproj
--WixProject A
----a.wixproj

我测试过,发现只有在CSProject是WPF项目时才会发生这种情况,并且WixProject不会向CSProject添加引用。它没有,

  • CSProject是一个控制台
  • CSProject是一个WPF,并由WixProject引用
  • CSProject是一个WPF,并没有被WixProject引用,而是在VS explorer中卸载。

1 个答案:

答案 0 :(得分:0)

使用MSBuildProjectDirectory作为参考目录:

<MSBuild Projects="$(MSBuildProjectDirectory)\..\A\a.csproj" Targets="Publish" />