簡體   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