如何在安装过程中修改.NET配置文件?


36

我使用app.config文件来存储一些值(映射数据库的路径,数据连接选择)。这些设置在用户机器上有所不同,我希望安装程序正确设置它们。有没有一个安装程序可以在安装过程中使用.NET配置文件,并允许我创建一些对话框来帮助我填写这些值?

我知道这个问题可能类似于:Initializing user.config or app.exe.config during install,但我不仅限于VS 2008安装项目,我想更改配置文件中的设置。

编辑:我看到使用维克斯是一种选择,但我觉得用大锤开裂核桃。这可能是唯一的解决方案,但我仍然希望简单。

55

我们使用WIX来更改应用程序的配置文件。它工作得很好,你需要在引用中添加wixUtilExtension.dll。

维克斯样本:

<Component Id="ChangeConfig" Guid="[YOUR_GUID_HERE]"> 
    <File Id="App.config" Name="MyApplication.exe.config" Vital="yes" KeyPath="yes" Source="[Path to project dir]\app.config" /> 
    <util:XmlFile Id="AppConfigSetConnStr" Action="setValue" Permanent="yes" File="[#App.config]"    
     ElementPath="/configuration/connectionStrings/add[\[]@name='MyDatabaseName'[\]]" Name="connectionString" 
     Value="Your Connection string values here" /> 

</Component> 

它实际上取决于你使用的是创建安装程序是什么,你有什么用?
已经对WIX Tutorial

  0

谢谢。 WIX特性和复杂性仍然让我感到害怕。我有点走不了那么简单的路线:) 14 11月. 082008-11-14 17:11:57

+13

只是为了完整;如果您在VS中执行此操作,则需要更改Fragment顶部的<Wix>标记以包含属性:xmlns:util =“http://schemas.microsoft.com/wix/UtilExtension。您还需要添加对WixUtilExtension的引用 15 10月. 122012-10-15 09:58:56

+2

这就是我所说的在参考文献中添加对wixUtilExtension.dll的引用,是的,你必须要做你提到的事情 07 11月. 122012-11-07 19:54:31


1

我已经使用WIX工具集来生成msi。该工具允许您在安装过程中声明性地指定对诸如app.config之类的XML文件的更改。问题是,虽然有一个重要的学习曲线。搜索wix的sourceforge。

  0

我希望为中/小项目轻量级的解决方案... :) 14 11月. 082008-11-14 11:37:59


1

我使用带有XML插件的NSIS来执行此操作。


3

如果您使用的是VS安装项目,是否创建了自定义操作?我已经将它们用于从XML值到部署数据库的所有事情。

  0

VS安装项目不是我推荐的东西。复苏,但仍然不支持CI场景,并且基于VS2005时代的技术,并且从未更新过适当的MsBuild支持。 23 4月. 162016-04-23 15:10:20

+1

@jessehouwing考虑到这个答案已经有7.5年历史了,这项技术已经发生了很大的变化。 23 4月. 162016-04-23 17:44:24


0

我知道这是一个古老的问题,但我们不想使用WIX或者一个非常简单的小安装程序。我发现这篇文章详细解释了如何做到这一点。它非常适合我们。

http://www.c-sharpcorner.com/UploadFile/ddoedens/CustomUI11102005042556AM/CustomUI.aspx