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

时间:2010-08-04 11:31:20

标签: c# wpf visual-studio msbuild

我有一个针对.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,但该项目不依赖于此库。

1 个答案:

答案 0 :(得分:19)

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

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

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