如何通过 .msi 包修改 machine.config
我正在尝试创建一个将部署 .NET 托管数据提供程序的安装程序。 为了使数据提供程序在应用程序下拉列表中显示为提供程序,我必须在 machine.config 部分中添加提供程序:
<system.data>
<DbProviderFactories>
<add name="My Data Provider"
invariant="Sample.MyDataProvider"
description="My Data Provider"
type="Eli.Sample.MyDataProvider, Sample.MyDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5b9d34470b87a97f"
/>
</DbProviderFactories>
</system.data>
我该如何执行此操作? 只要有一个指针就可以了。 谢谢。
I'm trying to create an installer that will deploy a .NET Managed data provider. In order for the data provider to appear as a provider in application drop-downs, I have to add the provider in the machine.config's section:
<system.data>
<DbProviderFactories>
<add name="My Data Provider"
invariant="Sample.MyDataProvider"
description="My Data Provider"
type="Eli.Sample.MyDataProvider, Sample.MyDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5b9d34470b87a97f"
/>
</DbProviderFactories>
</system.data>
How do I do this? Just a pointer would be fine. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您使用 Wix,则可以使用 XmlConfig 元素。
If your using Wix you can use the XmlConfig element.
您需要创建自定义安装程序操作并将其添加到您的 MSI 中以执行此操作(我假设您正在使用 Visual Studio 安装项目来执行此操作)。
You need to create a custom installer action and add it to your MSI to do this (I'm assuming you're using a Visual Studio setup project to do this).
您可以嵌套
XmlConfig
元素以获得稍微简洁的解决方案。 这就是我使用 WiX 工具集 v3.11 for .NET Framework 4 的效果:请注意,虽然您现在可以省略一些属性,因为您正在嵌套元素,但您仍然需要
File
和ElementId
属性。卸载
XmlConfig
元素似乎也需要VerifyPath
属性,以便它可以选择要删除的正确元素。You can nest the
XmlConfig
elements for a slightly neater solution. This is what worked for me with WiX toolset v3.11 for .NET Framework 4:Note that although you can now leave out some of the attributes because you're nesting the elements, you still need the
File
andElementId
attributes.The uninstall
XmlConfig
element seems to need theVerifyPath
attribute too, so that it can select the correct element to remove.