我需要在安装过程中使用XmlConfig修改我的machine.config文件,如下所示:
<util:XmlConfig
Id="Machine_Config_Xml_Root"
File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config"
Action="create"
On="install"
ElementPath="//configuration/system.data/DbProviderFactories"
Name="add"
Node="element"
Sequence="1">
</util:XmlConfig>
<util:XmlConfig
Id="Machine_Config_Xml_4"
File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config"
ElementPath="Machine_Config_Xml_Root"
Name="name"
Value="My Data Provider"
Sequence="2">
</util:XmlConfig>
<util:XmlConfig
Id="Machine_Config_Xml_3"
File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config"
ElementPath="Machine_Config_Xml_Root"
Name="invariant"
Value="Sample.MyDataProvider"
Sequence="2">
</util:XmlConfig>
<util:XmlConfig
Id="Machine_Config_Xml_5"
File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config"
ElementPath="Machine_Config_Xml_Root"
Name="description"
Value="My Data Provider"
Sequence="2">
</util:XmlConfig>
<util:XmlConfig
Id="Machine_Config_Xml_2"
File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config"
ElementPath="Machine_Config_Xml_Root"
Name="type"
Value="Eli.Sample.MyDataProvider, Sample.MyDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5b9d34470b87a97f"
Sequence="2">
</util:XmlConfig>
<util:XmlConfig
Id="Machine_Config_Xml_Uninstall_1"
File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config"
Action="delete"
On="uninstall"
ElementPath="//configuration/system.data/DbProviderFactories/add[\[]@invariant='Sample.MyDataProvider'[\]]"
Sequence="1">
</util:XmlConfig>
但由于这样的错误,它无法编译:
本地化变量!(loc.msierrXmlConfigFailedOpen)未知。
如何定义此loc.msierrXmlConfigFailedOpen变量和其他变量?我不想切换到en-Us文化(在这种情况下定义了变量) - 我需要保留当前的文化并自己定义loc变量。我怎么能这样做,我的wxs文件应该放在哪里声明?
答案 0 :(得分:2)
您引用的这句话可以在UtilExtension
文本中找到。这是WiX源中的相对路径:/src/ext/UtilExtension/wixlib/en-us.wxl
。只要您引用UtilExtension
,并为不同的文化(而不是en-US)构建MSI,就会出现此错误,因为您没有翻译这个以及其他与UtilExtension
一起使用的短语
您可以执行以下操作:
en-us.wxl
复制到您的WiX来源并将其重命名为您定位的文化<String>
元素的值替换为您所定位的文化的适当短语翻译<localizations>
部分)您可能希望利用WiX.chm