繁体   English   中英

Msbuild无法使用间接引用System.Runtime来构建网站项目

[英]Msbuild fails building website project with an indirect reference to System.Runtime

我遇到了MSBuild的依赖项问题。 我向解决方案中的项目添加了Microsoft.Tpl.Dataflow的NuGet程序包。 这会导致在引用第一个项目的解决方案中网站项目的构建失败。 获取正确的运行时版本似乎存在问题。

这是在使用MSBuild构建解决方案时遇到的许多错误之一。

C:\\ src \\ MyWebsite.metaproj:警告MSB3268:无法解析主引用“ C:\\ src \\ projects \\ ReferencedProject \\ bin \\ Debug \\ ReferencedProject.dll”,因为它间接依赖于框架程序集“系统”。运行时,版本= 4.0.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a”,当前目标框架中无法解决。 ” .NETFramework,版本= V4.5" 。 要解决此问题,请删除引用“ C:\\ src \\ projects \\ ReferencedProject \\ bin \\ Debug \\ ReferencedProject.dll”,或将应用程序重新定位到包含“ System.Runtime,Version = 4.0.0.0,Culture =中性,PublicKeyToken = b03f5f7f11d50a3a”。

令人困惑的是该解决方案在Visual Studio中构建良好。 此外,解决方案中的所有其他项目都已构建-只有网站项目失败了。

我努力了

  • 将网站的目标框架更改为4.0(当前为4.5)。
  • 将程序集引用添加到System.Runtime.dll版本4.0.0.0

我仍然无法建立它。 我怎样才能解决这个问题?

事实证明,aspnet_compiler.exe(由msbuild调用)不在Facade目录中查找库。

C:\\ Program Files(x86)\\ Reference Assemblys \\ Microsoft \\ Framework.NETFramework \\ v4.5 \\ Facade

因此,该解决方案中的网站项目将无法编译。

我是从这篇博客文章中发现的。 如此处所述,为解决此问题,我将DLL从Facade目录复制到v4.5目录中,一切正常。

老实说,这不是一个理想的解决方案。

暂无
暂无

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

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