C# 在应用程序配置文件中设置应用程序数据或任何特殊文件夹路径
C# set appdata or any special folder path in app config file
我试图找到一种使用 appdata 路径作为我的 environment.currentdurectory 的方法,这意味着我想 运行 来自 appdata 文件夹的 c# 应用程序,在我的项目中我总是使用 environment.currentdirectory.
我找不到一种方法可以在应用程序配置中设置应用程序数据路径,然后用应用程序数据路径替换 environment.curentdirectory...
PS:.
1) 我想将我的程序数据路径设置为 appdata
2) 我的项目代码设置为使用 environment.currentdirectory
3) 我不想通过逐行替换 environment.currentdirectory
目标 .Net 框架 4
您尝试过通过应用程序域执行此操作吗?
参见:
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);
所以,我发现我们不能直接从配置文件中获取应用程序数据路径,除非我们设置任何。
最好的用法是通过
获取应用程序数据路径
Environment.specialfolder 方法并使用它。
否则上面发布的答案是由 MSDN 本身给出的并且显然有效但代码太大
我试图找到一种使用 appdata 路径作为我的 environment.currentdurectory 的方法,这意味着我想 运行 来自 appdata 文件夹的 c# 应用程序,在我的项目中我总是使用 environment.currentdirectory.
我找不到一种方法可以在应用程序配置中设置应用程序数据路径,然后用应用程序数据路径替换 environment.curentdirectory...
PS:.
1) 我想将我的程序数据路径设置为 appdata
2) 我的项目代码设置为使用 environment.currentdirectory
3) 我不想通过逐行替换 environment.currentdirectory
目标 .Net 框架 4
您尝试过通过应用程序域执行此操作吗?
参见:
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);
所以,我发现我们不能直接从配置文件中获取应用程序数据路径,除非我们设置任何。
最好的用法是通过
获取应用程序数据路径Environment.specialfolder 方法并使用它。
否则上面发布的答案是由 MSDN 本身给出的并且显然有效但代码太大