2013-05-10 15 views
5

Używamy HEAT do zbudowania pliku dla naszego instalatora projektów internetowych. Chcę wiedzieć, czy istnieje sposób, że mogę mieć plik zawarty w kompilacji, ale nie jest uwzględniony w projekcie.Czy możesz dołączyć wygenerowany plik do projektu WiX bez dodawania go jako istniejącego pliku?

Powodem, dla którego potrzebuję tego, jest to, że nie chciałbym sprawdzać pliku w naszej kontroli kodu źródłowego, ale powinien go skompilować, gdy budujemy wixproj. W przeciwnym razie musimy przechwycić/wyewidencjonować plik, aby niezawodnie zbudować projekt.

Odpowiedz

5

Jeśli używasz MSBuild i .wixproj do zbudowania swojego .MSI, musisz uzyskać dane wyjściowe z HEAT, które będą wymienione w pozycji Compile w pliku .wixproj. Jeśli plik nie zostanie dołączony, nie zostanie skompilowany do ostatecznego .MSI.

Na szczęście MSBuild oferuje kilka opcji dynamicznego dodawania pozycji. Na przykład można mieć cel niestandardowy w swojej .wixproj który biegnie HEAT i dodaje wyjście

<Target Name='RunHeat'> 
    <Exec Command='heat.exe param param param -o path\to\output.wxs' /> 
    <ItemGroup> 
     <Compile Include='path\to\output.wxs' /> 
    </ItemGroup> 
</Target> 

Teraz, jeśli masz cel RunHeat biec przed docelowym Compile w wix.targets wtedy Compile przedmiot wytworzony w RunHeat będzie być częścią docelową Compile. Biorąc pod uwagę elastyczność MSBuild istnieje prawdopodobnie kilkanaście innych sposobów na wykonanie tego zadania.

Nadzieję, że pomaga i powodzenia!

+1

Również sam OMG sam odpowiedział na moje pytanie;) – Spence

+0

Zostawiłem tam inne polecenie, które zmuszało plik do obecności – Spence

Powiązane problemy