MSBuild WPF项目在WixProject中失败

MSBuild WPF项目在WixProject中失败,msbuild,wix,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">

我需要在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>
而它使用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中卸载

使用
MSBuildProjectDirectory
作为参考目录:

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


在各种情况下(wix与命令行msbuild)的工作目录是什么?从wix运行时,您确定当前目录是您期望的吗?请尝试添加显式的
OutDir
Properties=“OutDir=$(WixProjectFolder)\bin\$(配置)
<MSBuild Projects="$(MSBuildProjectDirectory)\..\A\a.csproj" Targets="Publish" />