假設contentproj只是一個文件的集合,你可以做的是直接被創建安裝程序的wixproj中添加的收穫:
<PropertyGroup>
<HarvestDirectoryNoLogo>true</HarvestDirectoryNoLogo>
<HarvestDirectorySuppressFragments>true</HarvestDirectorySuppressFragments>
<HarvestDirectorySuppressUniqueIds>true</HarvestDirectorySuppressUniqueIds>
<HarvestDirectoryAutogenerateGuids>true</HarvestDirectoryAutogenerateGuids>
</PropertyGroup>
<ItemGroup>
<HarvestDirectory Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "
Include="$(SolutionDir)\GameContent">
<DirectoryRefId>INSTALLDIR</DirectoryRefId>
<SuppressRootDirectory>true</SuppressRootDirectory>
<PreprocessorVariable>var.GameContentDir</PreprocessorVariable>
<ComponentGroupName>GameContent</ComponentGroupName>
</HarvestDirectory>
</ItemGroup>
您需要手動添加此到wixproj文件如果您需要多個目錄,您可以爲每個目錄重複HarvestDirectory。
要設置var.GameContentDir
預處理器變量編輯DefineConstants屬性:
<DefineConstants>GameContentDir=$(GameContentDir);</DefineConstants>
將預處理器VAR設置爲MSBuild的屬性:
<GameContentDir>$(SolutionDir)\GameContent</GameContentDir>
這意味着,你可以修改這取決於構建配置。如果您不需要修改路徑,只需在<DefineConstants>
屬性中設置一個靜態值即可。
然後,這將生成一個wxs文件在每個構建obj目錄,然後包含假設您已包含ComponentGroupName。如果你已經包含了你之前在你的wixproj中生成的那個,那麼將它刪除,因爲如果ComponentGroupName是相同的,你將會發生衝突。