2016-08-16 143 views
1

我有a project,它們同時針對.Net 2.0和.Net 4.5。我內置+在Visual Studio中成功發佈2013年它在.csproj的文件.NET配置仍然說無法在Visual Studio 2015中以.Net 2.0爲目標

<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>

然而,當我在2015年VS打開項目,它的目標.NET 4.5。

我在目標框架下拉可用2.0:

Target Framework Dropdown

當我點擊」。NET Framework 2.0" 的它給了我一個彈出說

Are you sure?

更改目標框架要求關閉當前項目並重新開放。
項目中任何未保存的更改都會自動保存。

更改目標框架我需要手動修改項目文件才能構建。

您確定要更改此項目的目標框架嗎?

當我點擊yes時,目標框架回到4.5,沒有其他事情發生。

  • 我試過重新打開項目和VS,沒有運氣。
  • 我已經嘗試運行.NET 3.5安裝程序(這顯然包括2.0),但它說我需要使用「打開Windows功能打開/關閉」
    • 我已經確保了淨3.5 Windows功能已啓用。

現在我沒有想法。有人遇到過這種情況麼?

運行Windows 7

+0

看起來像你一直在編輯。csproj文件與文本編輯器,它已損壞。 TargetFrameworkVersion元素不能依賴於配置和平臺名稱。在屏幕截圖中非常明顯,請注意如何禁用組合框。你可以用MSBuild構建它,但是你會混淆IDE的東西。這不是爲了讓你的生活更加悲慘,像IntelliSense這樣的基本的東西如果不知道目標,就不能正常工作。在VS2010與客戶端配置文件btw一個相當臭名昭着的問題。你必須重新考慮你的方法。 –

+0

@HansPassant,我有一個VS2013項目,針對不同的目標框架有不同的構建配置。你是否說這在VS2015中不被支持? (我知道它在GUI中不受支持) – adrianm

+0

*任何* VS版本都不支持。當你看到當你改變IDE中的目標時會發生什麼,這是最明顯的,這是一個巨大的IDE重置工作。當您更改所選配置或平臺時,您不會重置。當你這樣做的時候會有多少事情會發生變化是不可預測的,智能感知是一個明顯的傷亡事件。當你使用內置的設計器時,它會因隱藏的腐敗而變得非常混亂,特別是.resx文件損壞可能非常難以診斷。 –

回答

0

Hans Passant在評論中提到,我顯然(?)編輯了.csproj以針對不同的配置使用不同的框架。我發誓這並沒有導致VS 2013中的任何問題。

但無論如何,我使用ILSpy驗證生成的.dll是.Net 2.0,即使下拉說4.5。所以我想所有的結局都很好?

0

在的情況下,.NET Framework 2.0中被破壞,可使用.NET Framework安裝驗證工具:https://blogs.msdn.microsoft.com/astebner/2013/11/06/net-framework-setup-verification-tool-and-cleanup-tool-now-support-net-framework-4-5-1/覈實,一旦它發現任何損壞,則可以使用.NET Framework修復工具:https://www.microsoft.com/en-us/download/details.aspx?id=30135來修復它。

或者在'打開或關閉Windows功能'下,取消選中.NET Framework 3.5(包括.NET 2.0和3.0),然後檢查它。

相關問題