【发布时间】:2013-03-06 21:15:22
【问题描述】:
我们经常遇到麻烦,因为我们解决方案中的项目/包引用配置错误(例如,不正确地需要特定版本)。我想编写一个简单的 NUnit 测试来检查这些情况,以便我们尽早发现它们。理想情况下,我会在程序集上使用反射,而不是自己解析 csproj 文件。这可能吗? csproj文件中的所有信息都可以通过编译后的程序集反射获得吗?
【问题讨论】:
-
您无法从已编译的输出程序集中获取该信息,但您可以使用
Microsoft.Build命名空间遍历项目文件...您可以访问 csproj 文件吗? -
.csproj 文件中存储的一些详细信息在编译时会丢失,但您应该能够获取所有引用的程序集及其版本。这样就够了吗?
-
扩展@JerKimball 的评论,看看
Microsoft.Build.Evaluation.Projectclass。
标签: c# reflection reference assemblies