繁体   English   中英

MSBuild 无法使用 Bcl 相关库构建网站

[英]MSBuild fail to build web site with reference a Bcl related library

我有 2 个项目(.Net 4.0)

  • 一个类库(DataProvider)
    • 添加对 Bcl.Async 库的引用(通过 nuget)
    • 提供一些异步方法
  • 一个网站(SampleSite)
    • 参考“数据提供者”

问题:

  • 当我使用 Visual Studio 构建时,一切都很好(我使用 VS 2017 Community)
  • 尝试使用 MSBuild (MSBuild /target:rebuild /p:Configuration=Release /m:4) 时,我收到此警告“..\\WebSite1_1_.metaproj”(重建目标)(2) -> ..\\WebSite1_1_.metaproj :警告 MSB3268:无法解析主要引用“...\\WebSite1\\DataProvider\\bin\\Debug\\DataProvider.dll”,因为它间接依赖于框架程序集“System.Runtime, Version=1.5.11.0, Culture=中性,PublicKeyToken=b03f5f7f11d50a3a”,在当前目标框架中无法解决。 “.NETFramework,版本 = v4.0”。 要解决此问题,请删除引用“...\\WebSite1\\DataProvider\\bin\\Debug\\DataProvider.dll”或将您的应用程序重定向到包含“System.Runtime, Version=1.5.11.0, Culture=neutral”的框架版本, PublicKeyToken=b03f5f7f11d50a3a"。"
  • 最新的 DataProvider dll 不会被复制到“SampleSite”的 Bin 文件夹中,如果我使用来自 DataProvider 的一些新东西,我会得到错误(构建失败)

我四处搜索,包括 StackOverFlow。 但是我找不到与我的场景相关的任何内容。

我试过:

(这个问题没有代码)

我的期望:

  • 我可以自动使用 MSBuild 或其他东西来解决这个问题(因为这个问题是在我的构建服务器上自动发生的)

更新图片

  • 解决方案解决方案结构
  • 刚刚向 DataProvider 添加了新属性: 添加新属性
  • 在网站上正常使用它: 参考好吧
  • MSBuild 输出: 输出
  • 数据提供者项目: 在此处输入图片说明

如果我右键单击“WebSite2”-> 构建网站,一切都会好起来的。 但我想使用 msbuild 进行自动化工作

我现在可以在我的机器上重现相同的问题(详细信息参见 #4594),因为它与#5993有一些不同,我在msbuild而不是dotnet cli报告它。 问题已报告给Msbuild 4594

可以在命令行中工作的解决方法是使用devenv命令。

但是它需要我们在构建机器中安装VS ,然后我们可以使用devenv command例如:

在此处输入图片说明

使用-Rebuild开关可以像它在 VS 中的行为一样工作。 备注1

在我看来,如果我们在 vs 中构建这个特定的解决方案,它可能会比单个 msbuild.exe 执行更多的操作。 这就是它在 vs 中运行良好但在 msbuild 命令行中运行良好的原因。

所以如果我们需要在构建服务器中自动构建这个特定的网站,我们可以尝试使用 devenv 命令。(要查看构建输出,似乎使用devenv.com比使用devenv.exe更好,请参阅

希望它能有所帮助,让我们在 4594 中跟踪问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM