我正在尝试获取程序集文件夹路径

时间:2017-11-30 13:29:29

标签: c# .net

我使用以下代码获取路径:

 string componentName =System.Reflection.Assembly.GetExecutingAssembly().CodeBase;

返回完整路径:

  

C:\ PurgeEngineIntegrated \ PurgeEngine \ PurgeEngine \ BIN \调试

但我想走这条路:

  

C:\ PurgeEngineIntegrated \ PurgeEngine \ PurgeEngine \ GDPR Files

3 个答案:

答案 0 :(得分:1)

代码是正确的。它将返回运行程序集的位置。 Visual Studio编译时,即放入的文件夹。如果GDPR文件是应与运行时一起出现的文件夹,则可以将其标记为“始终复制”或“仅复制时更新”。或者,您需要手动复制该文件夹。

答案 1 :(得分:0)

你可以试试这个:

string componentName = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "\\GDPR Files";

请注意Directory.GetCurrentDirectory()这将为您提供工作目录路径C:\PurgeEngineIntegrated\PurgeEngine\PurgeEngine\bin\Debug,此代码Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName将为您提供Bin文件夹之前的路径。如果您从exe文件夹中的Debug文件运行该程序,它仍然有效,因为它为您提供了当前位置两步的路径。如果你想在不同的地方使用它,你必须要小心。

答案 2 :(得分:-1)

您可以尝试 UriBuilder.UnescapeDataString()从程序集位置获取目录

Preproduction