2012-10-09 94 views
1

似乎WIX文件中定義的所有二進制文件(.dll和.exe)都繼承了Product元素的版本和語言。所有其他文件(.ps1,.txt等)不會繼承版本,並且在升級時不會被替換。我需要能夠版本非二進制文件,所以它們可以在升級時被覆蓋。一旦我在文件元素上設置了DefaultVersion,一切正常,升級時文件被替換。使用WIX進行非二進制文件版本控制


<Component Id="Eula.txt" Guid="14285C13-A70C-474B-B2AE-06F68D4E170B"> 
    <File Id="Eula.txt" DiskId="1" Name="Eula.txt" Source="$(var.NeutralBinRoot)\" DefaultVersion="$(var.MsiProductVersion)"/> 
</Component> 

但是,我在編譯過程中得到這樣的警告:

 
warning LGHT1103 : The DefaultVersion '1.1.1' was used for file 'Eula.txt' which has no version. 
No entry for this file will be placed in the MsiFileHash table. 
For unversioned files, specifying a version that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. 
Version the resource to eliminate this warning. 

是什麼版本的非二進制資源有道?

回答

1

根據文檔,看起來您需要使用CompanionFile屬性並將其鏈接回原始程序集。我自己沒有用過這個,所以不能100%說它是否可以工作,但值得一試!

+0

是的,結束了使用CompanionFile。謝謝! – kateroh

+0

如果有鏈接的伴侶文件,這一切都很好。我正在爲包含Access .MDE文件的產品構建安裝工具包。在目標機器上,每次打開時,都會通過Access更新MDE文件,無論它是否已更改。這會阻止它被補丁所取代。我可以找到強制.MDE文件被替換的唯一方法是使用DefaultVersion。它似乎工作正常,但我確實得到了LGHT1103警告,我決定我只需要忍受。如果有人確實找到抑制它的方法,我會很有興趣聽到。 – Dave