Локализовать установщик WiX, который использует расширение брандмауэра - PullRequest
3 голосов
/ 22 апреля 2010

У меня есть проект установщика WiX, который использует MSBuild для создания файла MSI.Файл WXS включает расширение брандмауэра WiX:

xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension"

Я определил две культуры в файле MSBuild со следующим определением:

<PropertyGroup>
    ...
   <Cultures>en-us;no-no</Cultures>
</PropertyGroup>

Я также добавил переведенные ресурсы:

<ItemGroup>
    <EmbeddedResource Include="lang\Firewall_no-no.wxl" />
    <EmbeddedResource Include="lang\WixUI_no-no.wxl" />
</ItemGroup>

Представляет перевод на норвежский язык для расширения брандмауэра и расширения WixUI.Когда я запускаю сборку, она завершается успешно с частью en-us, но часть no-no завершается ошибкой со следующими сообщениями об ошибках:

C:\delivery\Dev\wix30_public\src\ext\FirewallExtension\wixlib\FirewallExtension.wxs(19):
error LGHT0102: The localization variable !(loc.WixSchedFirewallExceptionsInstall) 
is unknown.  Please ensure the variable is defined.
....

Пара проблем: я не знаю, где C:\deliveryКаталог приходит.У меня нет такого каталога.Переменные локализации, указанные в сообщении об ошибке, были переведены в файл Firewall_no-no.wxl.

Когда я запускаю MSBuild с более подробной информацией, я вижу следующий вывод прямо перед сообщением об ошибке:

Task "Light"
  Command:
  C:\Program Files (x86)\Windows Installer XML v3\bin\Light.exe -cultures:no-no 
  -ext "C:\Program Files (x86)\Windows Installer XML v3\bin\WixUIExtension.dll" 
  -ext "C:\Program Files (x86)\Windows I nstaller XML v3\bin\WixUtilExtension.dll" 
  -ext "C:\Program Files (x86)\Windows Installer XML v3\bin\WixFirewallExtension.dll" 
  -loc lang\Firewall_no-no.wxl -loc lang\WixUI_no-no.wxl 
  -out F:\Projects\MyProd\MyProj\Installer\bin\Debug\no-no\MyInstaller.msi 
  -pdbout F:\Projects\MyProd\MyProj\Installer\bin\Debug\no-no\MyInstaller.wixpdb
  obj\Debug\MyProj.wixobj

Как показывают детали, задача MSBuild приводит к наличию двух -loc параметров для исполняемого файла Light.Не уверен, что это будет причиной этой проблемы.Есть идеи, как это решить?

1 Ответ

2 голосов
/ 22 апреля 2010

Кажется, что причина этой ошибки была очень простой.Я получил исключение, потому что я не изменил атрибут Culture="no-no" в теге WixLocalization.При установке этого значения ошибки исчезали.

...