加载库的相对路径?

Gui*_*shy 2 c# path

我有以下编译文件夹(简化):

D:\MySolution\Project1\bin\Debug
D:\MySolution\Project2\bin\Debug
Run Code Online (Sandbox Code Playgroud)

Project1有一个参考,Project2但在代码中我必须从Project1加载一个类,所以我使用这个代码工作:

var project2ref = Assembly.LoadFrom(@"..\..\..\Project1\bin\Debug\Project1.dll")
                                .CreateInstance("MyNamespace.MyClass");
Run Code Online (Sandbox Code Playgroud)

这适用于VS但是当我使用我的软件的安装版本时它会崩溃...相对路径的替代方案是什么?

Gio*_*rdi 7

当您构建解决方案时,您将把project1的dll放入project2的bin文件夹中.因此,您可以通过检索project1.dll的程序集路径来获取project2.dll的引用.下面的代码将在project1中执行,并将获得包含dll的项目的bin路径.

System.Reflection.Assembly.GetExecutingAssembly().Location
Run Code Online (Sandbox Code Playgroud)