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