2010-08-04 144 views
9

我有一个面向.NET Framework 3.5的Visual Studio 2010项目。该项目建立在Visual Studio很好,但是当我尝试从命令行或从TeamCity的编译,我得到下面的生成错误:Visual Studio与“ReflectionOnlyAssemblyResolve事件”构建问题

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFX.targets(269,9): error MC1000: Unknown build error, 'Cannot resolve dependency to assembly 'Microsoft.Windows.Design.Extensibility, Version=4.0.0.0, Culture=neutral, PublicKey Token=b03f5f7f11d50a3a' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.' [C:\Work\MyProject\MyProject.sln]

的链接似乎抱怨Microsoft.Windows.Design.Extensibility.dll,但该项目不依赖在这个图书馆。

回答

18

这是轰炸试图编译项目中的XAML。忽略消息中有关ReflectionOnlyAssemblyResolve事件的评论,这只是试图帮助解决问题。真正的问题是它根本找不到组件。

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

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

+2

看来,依赖来自第三方库。它试图从你建议我的位置添加对图书馆的引用,它工作正常。谢谢。 – 2010-08-05 07:59:15