C#如何获取系统程序集的路径

时间:2019-01-16 19:50:31

标签: c#

我需要在我的C#代码中找到System.dll的汇编路径,才能在我的代码中使用roslyn执行一个C#文件。

typeof(Enumerable).Assembly.Location

返回"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll"很好,因为我需要System.Core.dll,但我也需要System.dll

但是我似乎找不到System.dll

中包含的类型

4 个答案:

答案 0 :(得分:1)

在Visual Studio(至少2017年)中,右键单击对System的项目引用,然后单击“在对象浏览器中查看”。

尝试System.Uri-碰巧的是,System.dll不包含可能合理假定的内容。我敢肯定,实际想法已经深入到了哪里。或不。例如:

System.dll contents

答案 1 :(得分:0)

System.Uri是系统程序集中类型的示例。

PowerShell快速确认:

[System.Uri].Assembly.Location

答案 2 :(得分:0)

您需要使用typeof(Enumerable).Assembly.GetReferencedAssemblies()浏览依赖关系树,以及它们的依赖关系,等等...

答案 3 :(得分:0)

您可以使用dotPeek。它是免费的,您可以看到dll文件的元数据。 Screenshot from dotPeek

现在您可以看到可以使用例如FileStyleUriParser

var path = typeof(FileStyleUriParser).Assembly.Location;

瞧,您有System.dll的路径。

还可以使用Visual Studio对象浏览器。 View -> Object BrowserCtrl + Alt + J,您将获得相同的结果。