Доступ к настройкам другого приложения - PullRequest
0 голосов
/ 17 марта 2010

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

Как лучше всего поступить?это?

ОБНОВЛЕНИЕ Во-первых, мои извинения за то, что я никогда не принял ответ на этот вопрос, я знаю, что ему больше года, но я сразу отвлекся после того, как спросил об этом, а затем проект был изменен, бла бла бла.Mea culpa ...

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

Ответы [ 2 ]

2 голосов
/ 18 марта 2010

Документы для 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 голосов
/ 18 марта 2010

Это боль, я могу вам так много сказать. Я обнаружил, что лучший способ сделать это - это сериализовать Settingsclass и использовать XML (код ниже). Но сначала попробуйте эту страницу: http://cf -bill.blogspot.com / 2007/10 / видео-студия обмен-один-файл-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;
        }
    }
}
...