2010-03-17 4 views
0

У меня есть приложение 1 и приложение 2. App2 должен убедиться, что App1 установлен, и если ему нужно получить доступ к свойству из настроек App1.Доступ к настройкам другого приложения

Что было бы лучшим способом сделать это?

UPDATE Во-первых, мои извинения, что никогда не принимать ответ на это, я знаю, что это более года, но я отвлекся сразу после выяснения этого, а затем проект был изменен, бла-бла-бла. Mea culpa ...

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

+0

Вам нужно больше информации. Является ли местоположение файла, содержащее уже известные настройки? – galford13x

+1

Области применения или области пользовательских настроек? –

ответ

1

В документах для ConfigurationManager.OpenExeConfiguration есть пример чтения файла .config другого exe и доступа к 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; 

Насколько проверяя, установлен App1, можно записать значение в реестре во время установки и проверьте его в App2 (и удалить значение в процессе деинсталляции).

0

Это боль, я могу сказать вам многое. Я обнаружил, что лучший способ сделать это - это сериализовать набор настроек и использовать 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; 
     } 
    } 
} 
Смежные вопросы