我的解决方案中ProjectB引用了ProjectA。我正在尝试在运行ProjectB时获得ProjectA的“路径”。
我试过这个:
在ProjectB中运行
// HomeController is in ProjectA
// This code is executed from ProjectB
var assembly = typeof(HomeController ).Assembly;
string filePath = new Uri(assembly.CodeBase).LocalPath;
返回ProjectB路径,而不是ProjectA路径。
编辑: 这显示了路径中的UnitTestProject1。我想获得WebApplication1的路径。
答案 0 :(得分:0)
要获取引用程序集的位置,请使用此
System.Reflection.Assembly.GetAssembly(typeof(SmsController)).Location;
答案 1 :(得分:0)
我认为您必须确保将要引用的文件复制到项目B(主项目)的bin文件夹中。然后你可以使用这段代码:
string code = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(code);
string path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);
这将返回bin文件夹的路径。
我认为您必须将要引用的文件添加为嵌入资源或链接资源:https://msdn.microsoft.com/en-us/library/ht9h2dk8(v=vs.100).aspx