【问题标题】:C# path relative to assembly DLL and not EXE [closed]相对于程序集 DLL 而不是 EXE 的 C# 路径
【发布时间】:2011-05-05 02:46:41
【问题描述】:

我有一个应用程序,用户可以在其中为我的应用程序创建插件并将他们的 dll 放在 /plugins 文件夹中。

插件开发人员有时必须参考应存储在其各自 /plugins/plugin_app/ 文件夹中的文件(xml 配置文件等)。

但是,当他们启动我的应用程序时,似乎总是将相对路径设置为启动 EXE 的文件夹(我的应用程序)。我该如何解决这个问题?

【问题讨论】:

    标签: c# dll path assemblies


    【解决方案1】:

    需要手动添加DLL的路径,形成绝对路径。

    例如:

    string somePath = Path.Combine(typeof(PluginType).Assembly.Location, "Config.xml");
    

    【讨论】:

    • 我知道这是旧的,但上面的例子是不正确的。 typeof(PluginType).Assembly.Location 返回程序集的路径而不是目录。应该是 Path.Combine(Path.GetDirectoryName(typeof(PluginType).Assembly.Location), "Config.xml")
    【解决方案2】:

    当他们引用文件时,他们可以在附加路径组件后引用:

    FileStream f = new FileStream(Path.Combine(mainAppDir,"plugins\\plugin_app\\filename.xml"),FileMode.Open);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      相关资源
      最近更新 更多