我得到了以下编译文件夹(简化):
D:\MySolution\Project1\bin\Debug
D:\MySolution\Project2\bin\Debug
我的Project1
在Project2
上有一个引用但在代码中我必须从Project1加载一个类,所以我使用了这个有效的代码:
var project2ref = Assembly.LoadFrom(@"..\..\..\Project1\bin\Debug\Project1.dll")
.CreateInstance("MyNamespace.MyClass");
这适用于VS,但是当我使用我的软件的安装版本时它会崩溃... 相对路径有哪些替代方案?
答案 0 :(得分:7)
当您构建解决方案时,您将把project1的dll放入project2的bin文件夹中。 因此,您可以通过检索project1.dll的程序集路径来获取project2.dll的引用。下面的代码将在project1中执行,并将获得包含dll的项目的bin路径。
System.Reflection.Assembly.GetExecutingAssembly().Location