【问题标题】:MSBuild from command line errors - Reference required to System.Xml来自命令行错误的 MSBuild - System.Xml 所需的参考
【发布时间】:2011-05-05 14:40:31
【问题描述】:

我正在创建一个批处理脚本,它将获取应用程序代码的最新版本,然后使用 msbuild 构建它。一切正常,直到 msbuild 部分。这是运行 msbuild 的行:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe "code/Solution.sln" /p:Configuration="Debug"

而且到处都是错误-所有错误都说:

C:\code\project1\codefile1.vb(882): error BC30009: Reference required to assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' containing the implemented interface 'System.Xml.Serialization.IXmlSerializable'. Add one to your project.

从 Visual Studio 2008 构建的所有内容都没有错误。这里发生了什么?

【问题讨论】:

  • 在不了解您的解决方案的情况下很难说。它抛出的 first 错误是什么?
  • 这是第一个错误,最后一个错误,以及介于两者之间的每个错误。汇编'System.Xml,Version = 2.0.0.0 ...'所需的参考
  • 您是否在使用 VS 正确构建的同一台计算机上运行脚本?您的 vbproj 文件中有 System.Xml 依赖项吗?
  • 它在 Visual Studio 的同一台机器上构建良好。我确实注意到 vbproj 文件中没有引用 System.Xml 的内容。
  • 也许您可以在批处理文件中明确指定 msbuild 的目标?此外,还有一种方法可以让 msbuild 变得冗长:blogs.msdn.com/b/msbuild/archive/2005/09/29/475157.aspx。有了这个,您可能能够深入了解 msbuild 正在做什么以及您期望它做什么。

标签: msbuild


【解决方案1】:

这可能是对问题的最详细描述:

MSBuild Can't Find Secondary References

Resolving Binary References in MSBuild

简而言之: 您的项目引用程序集 X。 X 包含一个类,该类实现来自程序集 Y 的接口。 您的项目未引用 Y,因此 MSBuild 失败。 Studio 表现得更聪明一些,并找到了二级参考。

【讨论】:

  • 好答案。当我在调试配置中构建时,VS 构建良好,但是当我在发布配置中构建时,我得到了错误。
【解决方案2】:

照它说的做,并将对 System.Xml 的引用添加到您的项目中。

项目->添加参考

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多