2008-10-30 12 views
14

मेरे पास एक सरल ऐप.कॉन्फिग के साथ एक कस्टम एप्लिकेशन है जो SQL सर्वर नाम और डेटाबेस निर्दिष्ट करता है, मैं उपयोगकर्ता को एप्लिकेशन कॉन्फ़िगरेशन आइटम्स के लिए एप्लिकेशन इंस्टॉल पर संकेत देना चाहता हूं और फिर ऐप अपडेट कर सकता हूं। विन्यास फाइलसेटअप ऐप। सेटअप प्रोजेक्ट में कस्टम एक्शन के रूप में कॉन्फ़िगर करें

मैं मानता हूं कि मैं परियोजनाओं को स्थापित करने के लिए बिल्कुल नया हूं और कुछ मार्गदर्शन की तलाश में हूं। आप मार्क कूप्स

उत्तर

2

app.config बदला जा सकता है ... औसत उपयोगकर्ता है, लेकिन यह एक स्थान HKEY___LOCAL_MACHINE यानी सदृश में मौजूद रीड-ओनली पहुंच।

तो आपको इसे व्यवस्थापक के रूप में बदलने की आवश्यकता होगी - सर्वोत्तम समय स्थापना के दौरान होगा, जहां आप उन्नत अनुमतियों के साथ स्थापित (माना जाना चाहिए)।

तो इंस्टॉलर क्लास बनाएं, उपयोगकर्ता के विकल्पों (जैसे "/ svr = [SERVER]/db = [डीबी]/uilevel = [UILEVEL]") में पास करने के लिए सेटअप प्रोजेक्ट में कस्टम एक्शन का उपयोग करें और, में AfterInstall घटना, की तरह कुछ का उपयोग कर app.config फ़ाइल बदलने के लिए:

Public Shared Property AppConfigSetting(ByVal SettingName As String) As Object 
    Get 
     Return My.Settings.PropertyValues(SettingName) 
    End Get 
    Set(ByVal value As Object) 
     Dim AppConfigFilename As String = String.Concat(System.Reflection.Assembly.GetExecutingAssembly.Location, ".config") 

     If (My.Computer.FileSystem.FileExists(AppConfigFilename)) Then 
      Dim AppSettingXPath As String = String.Concat("/configuration/applicationSettings/", My.Application.Info.AssemblyName, ".My.MySettings/setting[@name='", SettingName, "']/value") 

      Dim AppConfigXML As New System.Xml.XmlDataDocument 
      With AppConfigXML 
       .Load(AppConfigFilename) 

       Dim DataNode As System.Xml.XmlNode = .SelectSingleNode(AppSettingXPath) 

       If (DataNode Is Nothing) Then 
        Throw New Xml.XmlException(String.Format("Application setting not found ({0})!", AppSettingXPath)) 

       Else 
        DataNode.InnerText = value.ToString 
       End If 

       .Save(AppConfigFilename) 
      End With 

     Else 
      Throw New IO.FileNotFoundException("App.Config file not found!", AppConfigFilename) 
     End If 

    End Set 
End Property 
8

मैं कोड गुलजार एक 64 बिट मशीन पर से जुड़ा हुआ साथ समस्या थी। मुझे नीचे दिए गए लिंक को config.ui से app.config में मान प्राप्त करने का एक सरल समाधान माना गया है।

http://raquila.com/software/configure-app-config-application-settings-during-msi-install/

+0

उस लेख के लिए धन्यवाद। क्या कस्टमएक्शन के टेक्स्टबॉक्स में कॉन्फ़िगरेशन से मान पढ़ने का कोई तरीका है? – Praveen

संबंधित मुद्दे