【发布时间】:2017-05-19 13:03:20
【问题描述】:
C#(或 Windows)是否提供了一种方法来获取包含给定版本 .NET 的 .NET 引用程序集的目录位置?在我的机器上,它们位于:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v###\
其中### 是 3.5、4.0、4.5、4.5.1、4.5.2、4.6 或 4.6.1 中的任何一个。这些目录包含 mscorlib 和一些 System 程序集,而 v4.5+ 的在 Facades\ 子目录中还有更多 System 程序集。
有没有比硬编码更好的方法来获取这些目录的路径? (或者,或者,Microsoft 是否致力于将引用程序集保存在同一位置,以便硬编码不会中断?)
(上下文:我正在使用 Roslyn 编译一个项目,但它没有拾取我的 csproj、框架或其他方式中引用的任何程序集 - 所以我将它们手动加载为元数据引用。我在上面确定的目录是 MSBuild 在运行 csc 时从中获取程序集的位置,所以我想我也应该从那里获取程序集。)
【问题讨论】: