Мне нужно использовать 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 я должен разместить объявления?