2017-01-09 57 views
1

在Visual Studio 2013中,我有两个WIX 3.10项目。第一个名为“ProgramABundle”的“Bootstrapper”项目。第二个是名为“ProgramAInstaller”的“安装”项目。 ProgramABundle取决于ProgramAInstaller的输出才能正常工作。在Visual Studio解决方案中,我已经指定ProgramABundle依赖于ProgramAInstaller,并且我已经为ProgramABundle项目添加了一个ProgramAInstaller项目引用。WIx刻录项目依赖关系不生成

但是,当我右键单击ProgramABundle并选择“Build”或“Rebuild”时,即使输出为空,ProgramAInstaller也不会构建。如何在ProgramBundle构建时强制ProgramAInstaller进行构建?

请注意,我并不想设置配置来始终构建ProgramABundle和ProgramAInstaller,但我知道如果必须的话我可以这样做。

+0

根据您的描述,我创建2项目一个简单的演示,并命名为ProgramABundle项目取决于ProgramAInstaller,将建设两个项目,当你建立ProgramABundle https://1drv.ms/u/s!AlvaNEnglADDgQGDPpJnRvspjrm4 –

+0

为了让这个工作成功,我不得不将后期构建事件添加到依赖项,在成功构建时,删除了依赖于它们的项目输出。有点黑客,但它的工作。 –

回答

1

如何在构建ProgramABundle时强制ProgramAInstaller生成?

在生成名为ProgramABundle的项目之前,可以使用exec方法执行msbuild命令。请右键单击名为ProgramABundle的项目 - >卸载项目 - >右键单击名为ProgramABundle的项目 - >编辑ProgramABundle.wixproj,然后在wixproj文件中添加以下代码。

<PropertyGroup> 
    <MsbuildExe>"$(MSBuildToolsPath)\msbuild.exe"</MsbuildExe> 
    <InstallerProject>"related path\ProgramAInstaller.wixproj"</InstallerProject> 
    </PropertyGroup> 

    <Target Name="BeforeBuild"> 
    <Message Text="$(MSBuildToolsPath)" /> 
    <Exec Command="$(MsbuildExe) $(InstallerProject)"/> 
    </Target> 
+1

你解决了这个问题,如果问题依然存在,请随时告诉我。 –