使用“ReflectionOnlyAssemblyResolve事件”构建Visual Studio的问题

我有一个针对.NET Framework 3.5的Visual Studio 2010项目。 该项目从Visual Studio构建良好,但当我尝试从命令行或从TeamCity编译它时,我得到以下构建错误:

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.WinFX.targets(269,9):错误MC1000:未知的生成错误,’无法解析对程序集的依赖性’Microsoft.Windows.Design.Extensibility,Version = 4.0.0.0,Culture = neutral,PublicKey Token = b03f5f7f11d50a3a’因为它尚未预加载。 使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件按需预加载或加载相关的程序集。 [C:\工作\ MyProject的\ MyProject.sln]

链接器似乎抱怨Microsoft.Windows.Design.Extensibility.dll ,但该项目不依赖于此库。

试图在项目中编译XAML是一种轰动。 忽略消息中有关ReflectionOnlyAssemblyResolve事件的注释,这只是它试图帮助解决问题。 真正的问题是它根本无法找到assembly体。

这是可以预料的,Microsoft.Windows.Design.Extensibility是一个Visual Studio程序集,存储在Common7 \ IDE \ PublicAssemblies文件夹中。 只有在该文件夹位于探测路径中时才能找到它,如果从构建工具运行msbuild.exe,肯定不会。

不确定要推荐什么,你必须找出依赖来自哪里。 这可能应该从.xaml文件内容开始,搜索程序集名称。 从Visual Studio命令提示符运行msbuild.exe时,还要validation问题是否重现。