获取参考本地大会的位置

时间:2017-12-22 15:56:01

标签: c# asp.net .net

我的解决方案中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的路径。

enter image description here

2 个答案:

答案 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