C# 获取引用程序集中的相对路径

2024-01-02

我有2个项目项目A,项目B, 项目 A 引用了项目 B ,项目 A 是可执行文件。

  Project A --> Project B 

在项目 B 中有一个名为“MyFolder”的目录

所以解决方案层次结构如下:

    MySolution 
       -  A
       -  B 
          - MyFolder 

我如何从项目 A(可执行文件)中获取 MyFolder 的相对路径。

我找到了很多答案,其中指出了以下内容:

  sring path = Assembly.GetAssembly(typeof(SomeClassInBProject)).Location;

我从中得到的路径是A的bin\debug中B.dll的路径 ,我如何检索该 .dll 中的路径。

Edit :

iv'e也尝试过:

        Assembly assembly = Assembly.GetAssembly(typeof(SomeClassInBProject));
        FileStream fs = assembly.GetFile(@"MyFolder\myFile"); 

        and 

         FileStream fs = assembly.GetFile("MyFolder\myFile");  

        and 

         FileStream fs = assembly.GetFile("myFile");  

fs 我总是空。


Is Uri.MakeRelativeUri http://msdn.microsoft.com/en-us/library/system.uri.makerelativeuri%28v=vs.110%29.aspx你在找什么?

string pathA = Assembly.GetExecutingAssembly().Location;
string pathB = Assembly.GetAssembly(typeof(SomeClassInBProject)).Location;

Uri pathAUri = new Uri(pathA);
Uri pathBUri = new Uri(pathB);

string relativePath = pathAUri.MakeRelativeUri(pathBUri).OriginalString;
string relativeMyFolder = Path.Combine(relativePath, "MyFolder");

Update

您可以使用程序集.GetFile() http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getfile%28v=vs.110%29.aspx返回 FileStream 的方法。FileStream has a Name您可以在上面的代码中使用的属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 获取引用程序集中的相对路径 的相关文章

随机推荐