我有一个针对 .NET Framework 3.5 的 Visual Studio 2010 项目。该项目在 Visual Studio 中构建良好,但是当我尝试从命令行或 TeamCity 编译它时,出现以下构建错误:
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
,但项目不依赖于此库。
最佳答案
试图在项目中编译 XAML 是失败的。忽略消息中关于 ReflectionOnlyAssemblyResolve 事件的注释,那只是它试图帮助解决问题。真正的问题是它根本找不到程序集。
这是意料之中的,Microsoft.Windows.Design.Extensibility 是一个 Visual Studio 程序集,存储在 Common7\IDE\PublicAssemblies 文件夹中。只有当该文件夹在探测路径中时才能找到它,如果您从构建工具运行 msbuild.exe 肯定不会。
不确定推荐什么,您必须找出这种依赖性的来源。这可能应该从 .xaml 文件内容开始,搜索程序集名称。还要验证从 Visual Studio 命令提示符运行 msbuild.exe 时问题是否重现。
关于c# - "ReflectionOnlyAssemblyResolve event"的 Visual Studio 构建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3405053/