2008-11-14 3 views
36

Я использую файл app.config для хранения некоторых значений (путь к базе данных сопоставления, выбор подключения к данным). Эти настройки отличаются на пользовательских машинах, и я хотел бы, чтобы установщик установил их правильно. Есть ли программа установки, которая может работать с конфигурационными файлами .NET во время настройки и разрешить мне создавать некоторые диалоги, которые помогут мне заполнить эти значения?Как изменить файлы конфигурации .NET во время установки?

Я знаю, что этот вопрос может быть похож на: Initializing user.config or app.exe.config during install, но я не ограничиваюсь проектом VS 2008, и я хочу изменить настройки в файлах конфигурации.

EDIT: Я вижу, что использование WIX является одним из вариантов, но я чувствую, как растрескивание грецкого ореха кувалдой. Это может быть единственное решение, но я все еще надеюсь на что-то простое.

ответ

55

Мы используем 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.

+0

Спасибо. Меня все еще пугают возможности и сложность WIX. Я немного в восторге, чтобы пройти этот маршрут еще для чего-то такого простого :) – 2008-11-14 17:11:57

+13

Просто для полноты; если вы делаете это в VS, вам нужно изменить тег в верхней части фрагмента, чтобы включить атрибут: xmlns: util = "http://schemas.microsoft.com/wix/UtilExtension. добавьте ссылку на WixUtilExtension. – 2012-10-15 09:58:56

1

Я использовал набор инструментов WIX для создания msi. Инструмент позволяет декларативно указывать изменения файлов XML, таких как app.config, во время установки. Проблема в том, что есть значительная кривая обучения. Искать исходный код для wix.

+0

Я надеялся на более легкое решение для средних/малых проектов ... :) – 2008-11-14 11:37:59

1

Я использовал NSIS с плагином XML для этого.

3

Если вы используете проект настройки VS, вы создали собственное действие? Я использовал их для всего, от выталкивания XML-значений до развертывания баз данных.

0

Я знаю, что это старый вопрос, но мы не хотели использовать WIX для очень простого маленького установщика. Я нашел эту статью, которая подробно объясняет, как это сделать. Это отлично сработало для нас.

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

Смежные вопросы