2011-12-13 16 views
12

Bir wxs dosyası oluşturmak için ısıyorum. Kod aşağıdaki gibidir.ısı kaynaklı dosyalar SourceDir dizinini bulamadı

Tüm dosyaları dir.prompts'den yükleyicideki wxs dosyasına eklemek istiyorum. Ve bunu otomatik oluşturma sürecinin bir parçası olarak ekledim (böylece, oluşturulduktan sonra wxs dosyasını değiştiremiyorum).

wxs dosyası oluşturuldu ve aşağıdaki gibi bir şey görünüyor. Daha sonra Light, SourceDir \ Valid.wav'un ​​nerede olduğunu bulamadığı için yakınıyor. Yani sanırım sorum şu ki, SourceDir dosyaları okuduğum dizin ya da farkında olmadığım sihirli bir dizin var mı? Çok teşekkürler.

-var VariableName yedek Dosya/@ Kaynak = "sourceDir"

: heat.exe yardımı itibaren

:

<Fragment> 
    <ComponentGroup Id="COMPONENTS"> 
     <Component Id="dmp120F8C2794******" Directory="dir31A7EE61C56025FE2564A81E28E8C132" Guid="{6D40EBC0-***-***-B972-**********}"> 
      <File Id="fil919100C2******D045EC131" KeyPath="yes" Source="SourceDir\Valid.wav" /> 
     </Component> 



<exec program ="${dir.wix}\heat.exe"> 
    <arg value = "dir"/> 
    <arg line = "${dir.prompts}"/> 
    <arg value= "-gg"/> 
    <arg line="-cg &quot;COMPONENTS&quot;"/> 
    <arg line = "-out &quot;${dir.thisinstaller}\\COMPONENTS.wxs&quot;"/> 
</exec> 

cevap

11

komut satırı ısıtmak için -var anahtarını eklemek gerekir bir ön işlemciye veya bir wix değişkenine sahip. Örneğin:

-var var.MySource

Dosya/@ Kaynak = "$ (var.MySource) \ myfile.txt"

ve

-var wix olacak .MySource

Dosya olacak/@ Kaynak = "! (wix.MySource) \ myfile.txt"

+2

Ama sonra o değişkeni tanıyacağı bir "include" başlığını eklemeniz gerekir. sağ? – MichaelS

+2

evet ama bu manuel çalışma. Mümkünse otomatik olarak nasıl yapıldığına dair bir cevap isterim. – Pittfall

+0

Ortam değişkeni olmadan SourceDir yolunu verebileceğimiz bir yol var mı? –

16

Bulunduğunuz kaynak için ek SourceDir'leri arayacağınızı unutmayın, eğer -b

.

light.exe -b Foo ... 

(Yanıt: https://stackoverflow.com/a/6920979/640282)

+0

Bunu bir görsel stüdyo projesinden nasıl yaparım? –

+4

Visual Studio'da: Proje Özellikleri> Araç Ayarları> Bağlayıcı. -b yolunu yazın. Veya, .wixproj dosyanızdaki bir PropertyGroup'a bir LinkerBindInputPaths öğesi ekleyin. –

+0

THANK YOU @TomBlodget '-b MyDir' benim için çalıştı! –