2017-01-09 2 views
1

In Visual Studio 2013 habe ich zwei WIX 3.10 Projekte. Das erste ein "Bootstrapper" Projekt namens "ProgramABundle". Die zweite ist ein "Setup" -Projekt namens "ProgramAInstaller". ProgramABundle hängt davon ab, dass die Ausgabe von ProgramAInstaller ordnungsgemäß funktioniert. Innerhalb der Visual Studio-Lösung habe ich angegeben, dass das ProgramABundle von ProgramAInstaller abhängt, und ich habe eine ProgramAInstaller-Projektreferenz zum ProgramABundle-Projekt hinzugefügt.WIx brennen Projekt Abhängigkeiten nicht erstellen

Wenn ich jedoch mit der rechten Maustaste auf ProgramABundle klicke und "Build" oder "Rebuild" wähle, wird ProgramAInstaller nicht erstellt, auch wenn die Ausgabe leer ist. Wie erzwinge ich, dass ProgramAInstaller erstellt wird, wenn das ProgramABundle erstellt wird?

Beachten Sie, dass ich nicht wirklich die Konfiguration einrichten möchte, um immer das ProgramABundle und ProgramAInstaller zu erstellen, aber ich weiß, dass ich das tun kann, wenn ich muss.

+0

auf Ihrer Beschreibung basiert, erstelle ich eine einfache Demo mit 2 Projekt und Projekt mit dem Namen ProgramABundle hängt von ProgramAInstaller es zwei Projekte erstellen, wenn Sie bauen ProgramABundle https://1drv.ms/u/s!AlvaNEnglADDgQGDPpJnRvspjrm4 –

+0

Um dies zum Laufen zu bringen, musste ich den Abhängigkeiten ein Post-Build-Ereignis hinzufügen, das bei erfolgreichem Build die Projektausgabe löschte, die von ihnen abhing. Ein bisschen wie ein Hack, aber es hat funktioniert. –

Antwort

1

Wie erzwinge ich, dass ProgramAInstaller erstellt wird, wenn das ProgramABundle erstellt wird?

Sie können die exec-Methode verwenden, um den msbuild-Befehl auszuführen, bevor Sie das Projekt namens ProgramABundle erstellen. bitte klicken Sie mit der rechten Maustaste auf das Projekt namens ProgramABundle -> Projekt entladen -> klicken Sie mit der rechten Maustaste auf Projekt namens ProgramABundle -> Edit ProgramABundle.wixproj, dann fügen Sie den folgenden Code in Ihre wixproj-Datei ein.

<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

Beheben Sie das Problem, wenn das Problem weiterhin besteht, wenden Sie sich bitte an mich. –

Verwandte Themen