我正在研究的项目是从使用VS2008部署/安装程序切换到WiX,这是我目前非常新的。我已经添加了将资源项目的输出复制到Resources.dll中的代码,但是在旧的VS2008安装程序文件系统中还有本地化资源输出,它当前产生两个foldes(en和es)和另一个dll(每种语言的Resources.resources.dll)。我已经进行了一些搜索,但似乎无法找到将这些文件夹放入msi的方法,实际上知道这些文件夹存在并将它们直接放入。最好的方法是什么?
答案 0 :(得分:6)
在Wix源中为每个本地化文件夹(en和es)定义<Directory>
元素,然后在其中为您的附属程序集定义<Component>
个元素。
简而言之,请将它们直接放入!
答案 1 :(得分:5)
这对我有用,适用于2种语言。
我为法语和日语添加了localeDirectoryFR和localeDirectoryJA,如下所示:
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='CmisSync'>
<Component Id='CmisSync.exe' Guid='bab5a922-b5c4-4958-ab79-5e303b767a61'>
<File Id='CmisSync.exe' Name='CmisSync.exe' Source='!(wix.root)\bin\CmisSync.exe' KeyPath='yes' DiskId='1' />
</Component>
[... other components ...]
<Directory Id='localeDirectoryFR' Name='fr'>
<Component Id='localeComponentFR' Guid='01612d5d-6c9d-46e9-96c5-7105bbbea7db'>
<CreateFolder />
<File Id='localeFileFR' Name='CmisSync.resources.dll' Source='!(wix.root)\bin\fr\CmisSync.resources.dll' DiskId='1' />
</Component>
</Directory>
<Directory Id='localeDirectoryJA' Name='ja'>
<Component Id='localeComponentJA' Guid='8d77c457-54b0-41d6-9f1c-c91338b25505'>
<CreateFolder />
<File Id='localeFileJA' Name='CmisSync.resources.dll' Source='!(wix.root)\bin\ja\CmisSync.resources.dll' DiskId='1' />
</Component>
</Directory>
然后我在功能中引用了它们:
<Feature Id='CmisSyncFeature' Title='CmisSync' Description='CmisSync' Level='1' AllowAdvertise='no'>
<ComponentRef Id="CmisSync.exe" />
[... other componentrefs ...]
<ComponentRef Id="localeComponentFR" />
<ComponentRef Id="localeComponentJA" />
</Feature>
感谢Paul Lalonde的提示。