WiX管理代码自定义操作本地化

时间:2015-02-24 22:58:51

标签: c# localization wix action

我使用C#创建了托管代码自定义操作处理程序库。我尝试本地化DLL,但Wix.CA.targets执行的默认行为是在非托管代码包装器的包装中不包含语言资源DLL(在其子目录结构中),因此,我无法使用C#定位。

我真的不希望将这些字符串作为属性放在MSI中,并在自定义操作处理程序中读取它们。对于延迟的自定义操作,这看起来很笨重,而且非常笨拙。我更希望直接在自定义操作处理程序DLL中包含本地化。

有人能告诉我如何更改Wix.CA.targets文件以在打包中包含这些语言资源DLL,以便我可以成功本地化吗?或者,它比那更简单 - 例如,我可以设置一些项目属性或注册表项吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要将后期构建事件添加到CA项目中。该事件应该使用本地.NET culture文件夹和.resources文件使C#DTF与MakeSFxCA.exe进行翻译。更多详情 - herehere。我使用的命令示例:“%wix%SDK \ MakeSfxCA.exe”

  

“$(TargetDir)CustomActionUtilities.CA.dll”“%wix%SDK \ x86 \ sfxca.dll”   “$(TARGETDIR)CustomActionUtilities.dll”   “$(TARGETDIR)Microsoft.Deployment.WindowsInstaller.dll”   “$(TARGETDIR)CustomAction.config”   “RU-RU \ CustomActionUtilities.resources.dll = $(TARGETDIR)RU-RU \ CustomActionUtilities.resources.dll”   “C:\ Users \ Vitaly-work \ Documents \ Visual Studio   2010 \项目\ ActivationKeys \ CryptoLibrary \ BIN \发布\ CryptoLibrary.dll”   “C:\ Users \ Vitaly-work \ Documents \ Visual Studio   2010 \项目\ ActivationKeys \包\ BouncyCastle的-Ext.1.7.0 \ lib中\ net20 \ BouncyCastle.CryptoExt.dll“

请注意,引号对于VS正确处理命令非常重要。