2017-08-29 255 views
0

我有一箇舊的遺留應用程序,內置.Net fw。 3.5。不過,我設法讓它升級到.Net fw。 4.0,並且無法進一步將其遷移到更高版本,因爲存在舊組件和第三方dll。強制使用msbuild 4.0編譯.Net 4.0中的項目,即使.Net fw。 4.5已安裝

現在爲了一個新的集成工作,我使用的是一個內置.Net fw 4.5的dll,它是一個非常小的dll,它只是讓我相信一些內部調用。

當我在VS 2010中編譯工具版本爲4.0和目標框架爲4.0它仍然給我錯誤,說彙編引用缺失?並且還提供了dll是.Net fw 4.5的詳細信息,該項目的目標是4.0。

但是,當我卸載.Net fw 4.5和vs 2015,2013並重新安裝2010並編譯它的工作。並通過部署進行檢查。

現在,由於我的生成服務器已安裝.Net 4.5.2,我不想做所有這些卸載工作。

是否有任何方法/解決方法使項目在msbuild 4.0中編譯並僅通過.net fw 4.0編譯,即使.Net 4.5安裝在機器中?

非常感謝您的建議和幫助我

+0

項目 - >屬性 - >應用程序 - >目標框架? – HimBromBeere

+0

即已設置。它沒有幫助。 – vidz

回答

0

很不幸,答案是

點網4.5是一個在就地升級到斑點網4.0。

看到這個Scott Hanselman Blog Post

你可以嘗試使用MSBuild的命令行。有時,Visual Studio在解析程序集引用時「過分有幫助」過於激進。

的MSBuild與斑點網4.0附帶的版本是這樣的路徑:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 

這.exe文件是不是4.5升級後是相同的,但它是值得一試。

+0

我已經把它放在一個批處理文件中,我們按順序編譯了所有的項目。我們先設置路徑 set PATH =%PATH%;%WINDIR%\ Microsoft.NET \ Framework \ v4.0.30319 我仍然遇到過這個問題。所以我認爲如果安裝了Framework 4.5.X,除卸載它之外別無它法 – vidz