2011-05-09 55 views
2

我正在爲我正在研究的一個項目的wix安裝而苦苦掙扎。 我決定給一個wix嘗試,迄今爲止進展不順利。 我已經閱讀過大概所有的教程和搜索網沒有成功。多個目標位置上的Wix項目引用如何?

這裏是我的情況: 一個設置應該在安裝程序文件app文件夾
1)Windows窗體應用程序
2)所使用的Windows應用程序的Web應用程序
3)通過網絡使用的共享LIB1並贏得應用
4)通過網絡使用的共享LIB2和

我使用項目引用來收集與熱項目輸出取勝應用
...等。 我已經給出了每個項目的目錄ID,所以我可以稍後將其用作實際安裝位​​置的參考。 它看起來像我不能在多個位置上有相同的項目輸出 我不能同時參考多個項目。

如何讓安裝程序在多個目標位置上使用項目輸出。 這裏是例如從我product.wxs

 <!-- Define Directory Structure --> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 

     <!-- ProgramFiles --> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="dirManufacturer" Name="TEST_[Manufacturer]"> 
       <Directory Id="INSTALLLOCATION" Name="TEST_[ProductName]"> 

        <!-- Filled With Referenced project --> 
        <Directory Id="dirControl" Name="Control"> 
         <Directory Id="dirControlOutput" /> 
         <Directory Id="dirSearchAndIndexOutput" /> 
         <Directory Id="dirControlLib" /> 
         <Directory Id="dirControlAndWebLib" /> 
         <Directory Id="dirLuceneAnalyzersOutput" /> 
        </Directory> 

        <!-- Filled With Referenced project --> 
        <Directory Id="dirWeb" Name="Web"> 
         <Directory Id="dirWebOutput" /> 
         <Directory Id="dirWebBin" Name="bin"> 
          <Directory Id="dirUrlRewriterOutput" /> 
          <Directory Id="dirSearchAndIndexOutput" /> 
          <!-- TODO: Fix This 
          <Directory Id="dirSearchAndIndexOutput" /> 
          <Directory Id="dirControlAndWebLib" /> 
          <Directory Id="dirLuceneAnalyzersOutput" /> 
          --> 
         </Directory> 
        </Directory> 

       </Directory> 
      </Directory> 
     </Directory> 

     <!-- StartMenu --> 
     <Directory Id="ProgramMenuFolder"> 
      <Directory Id="dirProgramsMenu" Name="TEST_[ProductName]"> 
      </Directory> 
     </Directory> 

     <!-- CommonApplicationData --> 

    </Directory> 

我真的想了解這一切是如何工作的,但一切都我發現指出,這種情況是不可能的或者直接要求硬手動參考文件。

我的一般想法是讓Visual Studio解決方案自動爲每個源更改構建設置。

謝謝你的幫助和努力!

戈蘭

回答

3

從3和4。在我收集你需要安裝在不同的地方,相同的文件,右邊的描述?

你可以像下面這個例子那樣做 - 在目標機器上安裝兩次相同的文件(在生成機器上的路徑\ \ \ lib1.dll),如App \ lib1.dll和Web \ lib1。 DLL。您只需要引用相同源文件的2個不同組件。

<Directory Id="AppDir" Name="App"> 
    <Component Id='lib1_app.dll' Guid='*'> 
     <File Id='lib1_app' Name='lib1.dll' Source='path\to\lib1.dll' KeyPath='yes'> 
    </Component> 
</Directory> 

<Directory Id="WebDir" Name="Web"> 
    <Component Id='lib1_web.dll' Guid='*'> 
     <File Id='lib1_web' Name='lib1.dll' Source='path\to\lib1.dll' KeyPath='yes'> 
    </Component> 
</Directory> 
相關問題