我使用app.config文件存储一些值(映射数据库的路径,数据连接选择)。这些设置在用户计算机上有所不同,我希望安装程序将它们设置正确。是否有安装程序可以在安装过程中使用.NET配置文件,并允许我创建一些可以帮助我填写这些值的对话框?
我知道这个问题可能类似于:Initializing user.config or app.exe.config during install,但我不仅限于VS 2008安装项目,我想更改配置文件中的设置。
编辑:我看到使用WIX是一种选择,但我觉得用大锤开核桃。它可能是唯一的解决方案,但我仍然希望有一些简单的方法。
答案 0 :(得分:58)
我们使用WIX来更改应用程序的配置文件。它工作得很好,你需要在引用中添加wixUtilExtension.dll。
WIX示例:
<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进行了抨击。
答案 1 :(得分:3)
如果您使用的是VS安装项目,是否创建了自定义操作?我已经将它们用于从挖掘XML值到部署数据库的所有内容。
答案 2 :(得分:1)
我已经使用WIX工具集生成了一个msi。该工具允许您以声明方式指定安装期间对app.config等XML文件的更改。问题是虽然有一个重要的学习曲线。搜索wix的sourceforge。
答案 3 :(得分:1)
我使用带有XML插件的NSIS来执行此操作。
答案 4 :(得分:0)
我知道这是一个老问题,但我们并不想将WIX用于一个非常简单的小安装程序。我发现这篇文章详细解释了如何做到这一点。它对我们来说非常有效。
http://www.c-sharpcorner.com/UploadFile/ddoedens/CustomUI11102005042556AM/CustomUI.aspx