2008-11-14 36 views
36

Bazı değerleri (bir eşleme veritabanına giden yol, veri bağlantısı seçimleri) depolamak için app.config dosyasını kullanıyorum. Bu ayarlar kullanıcı makinelerinde farklıdır ve yükleyicinin bunları doğru şekilde ayarlamasını isterim. Kurulum sırasında .NET yapılandırma dosyalarıyla çalışabilen ve bu değerleri doldurmama yardımcı olacak bazı iletişim kutuları oluşturmama izin veren bir yükleyici var mı?Yükleme sırasında .NET yapılandırma dosyaları nasıl değiştirilir?

Bu soruya benzer olabilir: Initializing user.config or app.exe.config during install, ancak VS 2008 kurulum projesi ile sınırlı değil ve yapılandırma dosyalarındaki ayarları değiştirmek istiyorum.

DÜZENLEME: WIX kullanarak bir seçenek olduğunu görüyorum, ama bir balyozla bir ceviz kırmak gibi hissediyorum. Tek çözüm olabilir, ancak hala basit bir şey için umut ediyorum.

cevap

55

Uygulamanın yapılandırma dosyasını değiştirmek için WIX kullanıyoruz. Gerçekten iyi çalışıyor, referans olarak wixUtilExtension.dll eklemeniz gerekir.

WIX örnek: Aslında sen yükleyici oluşturmak için kullandığınız bağlıdır

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

, sen ne kullanıyorsun?
WIX Tutorial ürününe bakın.

+0

teşekkür ederiz. WIX özellikleri ve karmaşıklığı nedeniyle hala korkuyorum. Ben o kadar basit bir şey için henüz o rotaya gitmek için biraz korkuyorum :) –

+13

Sadece tamlığı için; Bunu VS'de yapıyorsanız, bir öznitelik eklemek için Parçanın üst kısmındaki etiketini değiştirmeniz gerekir: xmlns: util = "http://schemas.microsoft.com/wix/UtilExtension. WixUtilExtension'a bir başvuru ekleyin –

+2

Bu, referansta wixUtilExtension.dll dosyasına başvuru ekleyerek söylemek istediğim anlamına gelir Evet, bahsettiğiniz şeyi yapmak zorundasınız – CheGueVerra

1

Bir msi oluşturmak için WIX araç setini kullandım. Araç, yükleme sırasında app.config gibi XML dosyalarındaki değişiklikleri belirtebilmenizi sağlar. Sorun önemli bir öğrenme eğrisi olsa da. Wix için arama sourceforge.

+0

... :) –

1

Bunu yapmak için bir XML eklentisiyle NSIS kullanmıştım.

3

Bir VS kurulum projesi kullanıyorsanız, özel bir eylem oluşturdunuz mu? XML değerlerini veri tabanından dağıtmaya kadar her şeyi kullandım.

+0

VS Setup projeleri önereceğim bir şey değil. yeniden canlandırıldı, ancak hala CI senaryolarında desteklenmiyor ve VS2005 çağındaki teknolojilere dayanıyor ve hiçbir zaman doğru MsBuild desteği ile güncellenmedi. – jessehouwing

+1

@jessehouwing Bu cevabın 7.5 olduğunu düşünürsek teknoloji biraz değişti. – GalacticCowboy

İlgili konular