c# - "ReflectionOnlyAssemblyResolve event"的 Visual Studio 构建问题

标签 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): 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/

相关文章:

c# - ffmpeg 将命令的输出写入文本文件不适用于 C#

WPF Web 浏览器控件 : What browser does it use?

c# - 将 ObservableCollection 过滤到多个列表框

visual-studio - 我想在 64 位模式下运行我的 Visual Studio

visual-studio - 为 IIS 使用 Web 部署工具 - 使用管理员帐户,但不适用于 IIS 或 Windows 用户帐户

c++ - cl.exe 和 ml.exe 的问题

c# - 如何使图像成为我的 html.ActionLink 的一部分?

c# - 如何在 VS 2013 中更改预览中的程序名称?

c# - 使用 RxCpp 构建 Observer/Observable 模式

C# WPF Datagrid 如何禁用特定列上的选择单元格