2008-11-14 6 views
36

Ich verwende die app.config-Datei, um einige Werte zu speichern (Pfad zu einer Mapping-Datenbank, Auswahl der Datenverbindung). Diese Einstellungen unterscheiden sich auf den Benutzergeräten und ich möchte, dass das Installationsprogramm sie richtig einstellt. Gibt es ein Installationsprogramm, das während der Installation mit .NET-Konfigurationsdateien arbeiten kann und mir erlaubt, einige Dialoge zu erstellen, die mir helfen würden, diese Werte einzugeben?Wie Sie .NET-Konfigurationsdateien während der Installation ändern?

Ich weiß, diese Frage kann ähnlich sein: Initializing user.config or app.exe.config during install, aber ich bin nicht auf VS 2008 Setup-Projekt beschränkt und ich möchte die Einstellungen in den Konfigurationsdateien ändern.

EDIT: Ich sehe, dass mit WIX ist eine Option, aber ich fühle mich wie eine Walnuss mit einem Vorschlaghammer knacken. Es mag die einzige Lösung sein, aber ich hoffe immer noch auf etwas Einfaches.

Antwort

55

Wir verwenden WIX, um die Konfigurationsdatei der Anwendung zu ändern. Es funktioniert wirklich gut, Sie müssen wixUtilExtension.dll in der Referenz hinzufügen.

WIX Beispiel:

<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> 

Es hängt tatsächlich auf das, was Sie verwenden, um das Installationsprogramm zu erstellen, Was verwenden Sie?
Haben Sie einen Blick auf die WIX Tutorial.

+0

Danke. Ich bin immer noch verängstigt von den WIX-Funktionen und der Komplexität. Ich bin ein bisschen afraif, um diesen Weg noch für etwas so einfaches zu gehen :) –

+13

Nur für die Vollständigkeit; Wenn Sie dies in VS tun, müssen Sie das Tag am oberen Rand des Fragments ändern, um ein Attribut hinzuzufügen: xmlns: util = "http://schemas.microsoft.com/wix/UtilExtension. Sie müssen auch fügen Sie einen Verweis auf WixUtilExtension hinzu. –

+2

Das ist, was ich meinte zu sagen, den Verweis auf die wixUtilExtension.dll in der Referenz hinzufügen. Ja müssen Sie tun, was Sie erwähnen. – CheGueVerra

1

Ich habe das WIX-Toolset verwendet, um eine MSI zu erzeugen. Mit dem Tool können Sie während der Installation Änderungen an XML-Dateien wie app.config deklarativ angeben. Problem ist, obwohl es eine signifikante Lernkurve gibt. Suche nach sourceforge für wix.

+0

ich für eine leichtere Lösung für mittlere/kleine Projekte der Hoffnung war ... :) –

1

Ich verwendete NSIS mit einem XML-Plugin, um dies zu tun.

3

Wenn Sie ein VS-Setup-Projekt verwenden, haben Sie eine benutzerdefinierte Aktion erstellt? Ich habe sie für alles verwendet, von XML-Werten bis zur Bereitstellung von Datenbanken.

+0

Die VS-Setup-Projekte sind nichts, was ich empfehlen würde Wiederbelebung, aber immer noch nicht in CI-Szenarien unterstützt und basieren auf Technologien aus der VS2005-Ära und wurden nie mit der richtigen MsBuild-Unterstützung aktualisiert .. – jessehouwing

+1

@jessehouwing Bedenkt man, dass diese Antwort 7,5 Jahre alt ist, hat sich die Technologie ziemlich verändert. – GalacticCowboy