2017-01-09 10 views
1

В Visual Studio 2013 у меня есть два проекта WIX 3.10. Первый проект «Bootstrapper» под названием «ProgramABundle». Второй - это проект «Setup» под названием «ProgramAInstaller». ProgramABundle зависит от результата работы ProgramAInstaller для правильной работы. В решении Visual Studio я указал, что ProgramABundle зависит от ProgramAInstaller, и я добавил ссылку проекта ProgramAInstaller на проект ProgramABundle.Зависимости от проекта проекта WIx не строятся

Однако, когда я нажимаю правой кнопкой мыши на ProgramABundle и выбираю «Build» или «Rebuild», ProgramAInstaller не создается, даже когда его вывод пуст. Как заставить ProgramAInstaller строить каждый раз, когда вы создаете ProgramABundle?

Обратите внимание, что я действительно не хочу настраивать конфигурацию, чтобы всегда создавать ProgramABundle и ProgramAInstaller, но я знаю, что могу это сделать, если мне нужно.

+0

на основе вашего описания, я создаю простой демо с 2 проекта, и проект под названием ProgramABundle зависит от ProgramAInstaller, он будет строить два проекта при создании ProgramABundle https://1drv.ms/u/s!AlvaNEnglADDgQGDPpJnRvspjrm4 –

+0

Чтобы заставить это работать, мне пришлось добавить событие Post Build к зависимостям, которые при успешной сборке удалили вывод проекта, который зависел от них. Немного взлома, но это сработало. –

ответ

1

Как заставить ProgramAInstaller строить каждый раз, когда вы создаете ProgramABundle?

Вы можете использовать метод exec для выполнения команды msbuild перед тем, как создать проект под названием ProgramABundle. щелкните правой кнопкой мыши проект под названием ProgramABundle -> unload project -> щелкните правой кнопкой мыши проект под названием ProgramABundle -> Edit 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

Вы разрешаете проблему, если проблема все еще существует, пожалуйста, сообщите мне об этом. –

 Смежные вопросы

  • Нет связанных вопросов^_^