所以我可能不會做這種正確的,但這裏有雲:維克斯收穫:同一組件/文件ID當文件在不同的文件夾
我有4個SQL Server程序集的引用一個應用
應用程序必須打擊SQL 2008和2010年
我已經得到這個工作的唯一途徑是,有我的應用程序中引用了我的SQL大會一個「通用」的路徑。然後在我的MSBuild項目中,我將2008程序集複製到「通用」文件夾並編譯我的應用程序。我再次爲2012年
我有這樣的工具\發佈\ V2008和工具\發佈\ V2010文件夾做到這一點。這些文件夾具有所有EXE和必需的DLL(包括4個sql服務器)。我對這些文件夾運行HEAT。但是,當我針對每個文件夾運行熱量,每個文件夾具有相同的目錄ID但組件不同時,我會得到2個wxs文件,每個文件都具有相同的文件(預期),但每個文件的id和文件id在2個wxs文件。
例子:
MSBuild Command:
<Exec Command=""$(WixTools)\heat.exe" dir $(DeploymentRoot)\Tools\V2008 -dr TOOLS -cg Tools2008Component -var var.Tools2008Path -gg -scom -sreg -sfrag -srd -o $(heatOutputPath)\cmp2008ToolsFrag.wxs"/>
WXS File
<DirectoryRef Id="TOOLS">
<Component Id="cmp04831EC1F8BB21C028A7FC875720302F" Guid="*">
<File Id="fil09727A8BFD32FDCE7C743D6DD2008E7C" KeyPath="yes" Source="$(var.Tools2008Path)\AL3Util.exe" />
</Component>
MSBuild Command:
<Exec Command=""$(WixTools)\heat.exe" dir $(DeploymentRoot)\Tools\V2012 -dr TOOLS -cg Tools2012Component -var var.Tools2012Path -gg -scom -sreg -sfrag -srd -o $(heatOutputPath)\cmp2012ToolsFrag.wxs"/>
WXS file
<DirectoryRef Id="TOOLS">
<Component Id="cmp04831EC1F8BB21C028A7FC875720302F" Guid="*">
<File Id="fil09727A8BFD32FDCE7C743D6DD2008E7C" KeyPath="yes" Source="$(var.Tools2012Path)\AL3Util.exe" />
</Component>
我怎樣才能得到每個WXS文件,具有獨特的組成部分和文件ID? 還是 - 我怎樣才能做到這一點更好:)
謝謝!
我正在執行以下命令並獲得不同的ID:'heat dir c:\ temp \ Dir1 -o c:\ temp \ dir1output.wxs'。你正在使用的命令語法如何? – Marlos 2014-09-12 18:00:35