【问题标题】:What causes a "Cannot resolve dependency error" from MsBuild?是什么导致 MsBuild 出现“无法解析依赖错误”?
【发布时间】:2011-08-04 09:25:04
【问题描述】:

我正在尝试设置一些构建脚本以进行持续集成,但我发现了一些奇怪的东西。

我的解决方案从 Visual Studio 2010 编译得很好,但是当我使用 MSBuild 从命令行构建完全相同的东西时失败并出现错误。

这是我从命令行构建中得到的错误。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.WinFX.targets(269,9):
错误 MC1000:未知的构建错误,
'无法解析对程序集 'Microsoft.Windows.Design.Extensibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 的依赖,因为它没有被预加载。使用 ReflectionOnly API 时,必须通过 ReflectionOnlyAssemblyResolve 事件预加载或按需加载依赖程序集。'
[C:\Dev\Market Watch\src\Console\MarketWatch.Console\Rbnz.MarketWatch.Console.csproj]

我已经检查了我所有的源代码中对Microsoft.Windows.Design.Extensibility 的引用,但根本没有找到。我还检查了我们从这个项目中引用的所有二进制文件,包括一些 DevExpress 库。

我的 MSBuild 命令行如下所示:

MsBuild.exe c:\Dev\MarketWatch\src\Capture\Capture.sln 
  /t:rebuild 
  /verbosity:quiet 
  /filelogger 
  /fileloggerparameters:LogFile=c:\Dev\MarketWatch\build\Logs\capture.msbuild.log

我是否应该在 MsBuild 命令行中添加一些内容以使命令行构建与 Visual Studio 运行的构建工作相同?

14 月 4 日更新

  • 尽管从 Visual Studio 命令提示符运行构建脚本,但仍出现这些错误。

【问题讨论】:

    标签: visual-studio-2010 msbuild continuous-integration


    【解决方案1】:

    您应该初始化路径以查找程序集、工具等。在调用 msbuild 之前调用 vcvarsall.bat

    call "%ProgramFiles%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
    

    或者打开 VS2010 命令行控制台并从中调用你的脚本。这两个动作的效果是一样的。

    编辑:我不明白一件事 - google 你的问题说你以错误的方式使用反射,here 描述了一种可能的解决方案。我说的对吗?

    【讨论】:

    • 好建议,但我已经从 VS2010 命令提示符运行我的构建脚本。我将更新问题以表明这一点。
    • 我发现了一些关于(错误)使用反射的链接 - 但它们都是关于编写错误的代码。我的问题不是在运行时发生,而是在 compile 时发生。
    【解决方案2】:

    希望您解决了问题,但供将来参考:

    我刚刚遇到了同样的问题,它来自 DevExpress '.design' 程序集。你实际上不应该在你的项目中引用那些。删除对以“.design”结尾的 DevExpress 程序集的所有引用,它应该可以工作。

    【讨论】:

    • 这同样适用于 Mindscape.*.Design 程序集;谢谢你为我省去了很多麻烦。
    • 这是我使用 Install-Package Microsoft.Expression.Blend.SDK.WPF 删除 .design 程序集后的问题。谢谢。
    • 这似乎同样适用于 Infragistics .design 程序集。
    • 呃,谢天谢地,C# 中没有类似 maven 的东西,所以人们可以在这样的问题上浪费无数时间......谢谢你这次救了我们!
    • 这可以解决编译问题,但这样做您将无法使用您尝试编译的源代码的设计器功能。我通过在编译机器上安装 Visual Studio SDK 解决了这个问题,它运行良好。
    【解决方案3】:

    我最近遇到了同样的问题。

    错误是在我们的 VSTS-BuildAgent 上引发的。 在遵循 Devexpress 站点(包括 Project-Upgrade)的所有建议后,错误仍然存​​在。

    老实说,我们正在混合 WinForms 和 WPF,以便从 Winforms 顺利迁移到 WPF,因此基本上不是日常问题。

    无论如何,我能够通过再次将所有需要的引用添加到 WPF-Project 来解决这个问题,即使它们都已经在 Winforms 的 Start-Project 中被引用了。

    在此移动之后,BuildAgent 能够成功构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2015-02-26
      • 2022-12-14
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多