C # установить appdata или любой специальный путь к папке в файле конфигурации приложения - PullRequest
0 голосов
/ 07 января 2019

Я пытался найти способ использовать путь appdata в качестве своего environment.currentdurectory, что означает, что я хочу запустить приложение c # из папки appdata, и в своем проекте я всегда использовал environment.currentdirectory.

Я не смог найти способ, которым я могу установить путь к appdata в конфигурации приложения и затем заменить environment.curentdirectory на путь appdata ...

PS :.

1) Я хочу установить путь к данным моей программы как appdata

2) мой код проекта настроен на использование environment.currentdirectory

3) Я не хочу заменять environment.currentdirectory, перебирая каждую строку за строкой

Целевая .Net Framework 4

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Итак, я обнаружил, что мы не можем получить путь к данным приложения напрямую из файла конфигурации, если мы не установили их.

Лучше всего было бы просто получить путь к данным приложения по

Environment.specialfolder метод и использовать его.

В противном случае опубликованный выше ответ дается самим MSDN и, очевидно, работает, но слишком большой код

0 голосов
/ 07 января 2019

Вы пытались сделать это через домен приложения.

См:

https://docs.microsoft.com/en-us/dotnet/api/system.appdomain.basedirectory?view=netframework-4.7.2

    // Create application domain setup information
    var domaininfo = new AppDomainSetup();
    domaininfo.ConfigurationFile = System.Environment.CurrentDirectory + 
                                   Path.DirectorySeparatorChar +
                                   "ADSetup.exe.config";
    domaininfo.ApplicationBase = System.Environment.CurrentDirectory;

    //Create evidence for the new appdomain from evidence of the current application domain
    Evidence adEvidence = AppDomain.CurrentDomain.Evidence;

    // Create appdomain
    AppDomain domain = AppDomain.CreateDomain("Domain2", adEvidence, domaininfo);

    // Display application domain information.
    Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
    Console.WriteLine("Child domain: " + domain.FriendlyName);
    Console.WriteLine();
    Console.WriteLine("Configuration file: " + domain.SetupInformation.ConfigurationFile);
    Console.WriteLine("Application Base Directory: " + domain.BaseDirectory);

    AppDomain.Unload(domain);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...