为什么不直接针对您的项目或解决方案文件调用msbuild,将它传递给/ v:d扩展名,并解析输出文件以获取所需信息?例如,你将看到类似的每个大会决议如下:
Primary reference "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
Resolved file path is "c:\WINNT\Microsoft.NET\Framework\v2.0.50727\System.Data.dll".
Reference found at search path location "{TargetFrameworkDirectory}".
For SearchPath "{TargetFrameworkDirectory}".
Considered "C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.exe", but it didn't exist.
Considered "C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.dll", but it didn't exist.
Considered "C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\System.Data.exe", but it didn't exist.
Considered "C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\System.Data.dll", but it didn't exist.
Considered "c:\WINNT\Microsoft.NET\Framework\v3.5\System.Data.exe", but it didn't exist.
Considered "c:\WINNT\Microsoft.NET\Framework\v3.5\System.Data.dll", but it didn't exist.
Considered "c:\WINNT\Microsoft.NET\Framework\v3.0\System.Data.exe", but it didn't exist.
Considered "c:\WINNT\Microsoft.NET\Framework\v3.0\System.Data.dll", but it didn't exist.
Considered "c:\WINNT\Microsoft.NET\Framework\v2.0.50727\System.Data.exe", but it didn't exist.
This reference is not "CopyLocal" because it's a prerequisite file.
另外,MSBuild的代表解析组件从Microsoft.Build.Tasks的Microsoft.Build.Tasks.ResolveAssemblyReference类的任务。 v3.5汇编(在我的情况下,构建3.5框架)。您可以解析项目文件,并提供ResolveAssemblyReference实例与适当的(元)数据,并让它为您执行解析 - 看起来很完美,因为这正是MSBuild所做的。
我对汇编来自编译时的感兴趣。在运行时,我想查看XML的参考版本属性是“System.Xml”,并找到与msbuild找到的相同的程序集。 – 2009-06-26 19:34:53
谢谢你试图回答。不幸的是,这些都不是运行时解决方案。 – 2009-06-30 22:49:12