2010-03-17 50 views
0

我有應用程序1和應用程序2.應用程序2需要驗證是否安裝了App1,並且是否需要從App1設置訪問屬性。訪問另一個應用程序的設置

什麼是最好的方式去做這件事?

UPDATE 首先,我的道歉從來沒有接受一個答案,我知道這是一歲多了,但我得到了這個要求後,立即牽制,並在項目變更,等等等等。 Mea culpa ...

我現在回來了,我仍然需要解決這個問題,但現在應用程序通過ClickOnce部署,所以我實際上不知道他們位於何處。任何建議,將不勝感激。我保證這次我會選擇一個答案。

+0

需要更多信息。包含設置的文件位置是否已知? – galford13x 2010-03-17 19:30:45

+1

應用程序作用域或用戶作用域設置? – 2010-03-17 19:52:53

回答

1

ConfigurationManager.OpenExeConfiguration的文檔有一個讀取另一個exe的.config文件並訪問AppSettings的示例。那就是:

// Get the application path. 
string exePath = System.IO.Path.Combine(
    Environment.CurrentDirectory, "ConfigurationManager.exe"); 

// Get the configuration file. 
System.Configuration.Configuration config = 
    ConfigurationManager.OpenExeConfiguration(exePath); 

// Get the AppSetins section. 
AppSettingsSection appSettingSection = config.AppSettings; 

至於檢查已安裝應用1,你可以在安裝過程中寫入註冊表中的值,並檢查它的應用2(和卸載過程中刪除值)。

0

這是一種痛苦,我可以告訴你很多。我發現最好的方法是序列化Settings類並使用XML(下面的代碼)。但請先嚐試以下頁面: http://cf-bill.blogspot.com/2007/10/visual-studio-sharing-one-file-between.html

public class Settings 
{ 
    public static string ConfigFile{get{return "Config.XML";}} 
    public string Property1 { get; set; } 

    /// <summary> 
    /// Saves the settings to the Xml-file 
    /// </summary> 
    public void Save() 
    { 
     XmlSerializer serializer = new XmlSerializer(typeof(Settings)); 
     using (TextWriter reader = new StreamWriter(ConfigFile)) 
     { 
      serializer.Serialize(reader, this); 
     } 
    } 
    /// <summary> 
    /// Reloads the settings from the Xml-file 
    /// </summary> 
    /// <returns>Settings loaded from file</returns> 
    public static Settings Load() 
    { 
     XmlSerializer serializer = new XmlSerializer(typeof(Settings)); 
     using (TextReader reader = new StreamReader(ConfigFile)) 
     { 
      return serializer.Deserialize(reader) as Settings; 
     } 
    } 
} 
相關問題