我已經在這個問題上燃燒了幾個小時,並且做了大量的搜索來弄清楚發生了什麼事情。爲什麼Microsoft.Build.Framework.dll 15.3不加載csproj,15.1呢?
我有一個從.csproj文件加載項目文件的應用程序,因此它引用了Microsoft.Build dll。在我的一臺電腦上,一切正常。另一方面,當我嘗試加載.csproj文件時,應用程序崩潰。
我得到的例外是Microsoft.Build.Exceptions.InvalidProjectFileException
類型的以下消息:
的工具版本「15.0」是無法識別的。可用的工具版本是「14.0」,「2.0」,「3.5」,「4.0」。
起初我不確定是什麼導致了這個問題,所以我想我會將.dlls作爲我的項目的一部分。也就是說,我將.dlls複製到我的項目中的一個文件夾中,並引用了這些.dll文件。但是,當我跑我的項目GAC載入偏好正在咬我,作爲輸出窗口顯示我不同的.dll文件被加載:
加載「C:\ WINDOWS \ Microsoft.Net \裝配\ GAC_MSIL \ Microsoft.Build.Framework \ v4.0_15.1.0.0__b03f5f7f11d50a3a \ Microsoft.Build.Framework.dll」。
因此,我通過導航到該位置並查看.dll上的屬性,查看了每臺計算機上加載的.dll文件。
在運行的計算機上,.dll的版本爲15.1.1015。 在沒有工作的機器上.dll的版本爲15.3.409
我還沒有發現有人在討論這個確切的問題,但是我已經看到人們在升級到Visual Studio 15.3後討論了問題。果然,無法工作的計算機具有Visual Studio 15.3.5,而工作的計算機具有Visual Studio 15.2。
爲了嘗試解決這個問題,我刪除了使用步驟,從GAC 15.3這裏概述:
Could not load type 'Microsoft.Build.Framework.SdkReference' on project open in VS 2017 U1 (15.3)
唉,即使這種變化之後,我仍然遇到了同樣的問題,所以改變了GAC來指向更早的Microsoft.Build.Framework.dll仍然沒有修復它(也許是因爲Microsoft.Build系列中的其他文件正在以15.3的GAC格式運行)。我確實證實了由GAC加載的版本現在是15.1。
是否有另一種解決方法或修復方法可以應用於解決此問題?
您是否嘗試使用msbuild命令行進行構建?你應該通過這一步,否則問題可能在msbuild。嘗試'msbuild <你的解決方案。>' –
我不知道爲什麼msbuild .exe會是問題,因爲我還沒有執行構建 - 只是試圖加載.csproj。也就是說,該項目在Visual Studio中正確加載,並且在VS 2017 –