今天,我在我的機器上安裝了.NET Framework 4.5,希望能夠從Visual Studio 2010使用它,因爲它只是一個小的更新,不會對視覺造成問題 工作室 2010.不幸的是,我不是,即使手動刪除某些4.0,並添加相應的4.5程序集導致原來的4.0程序集仍在項目中引用。通過Visual Studio 2010針對.NET Framework 4.5
是否有可能從視覺對象版本4.5 Studio 2010如果是,如何?我真的很喜歡使用功能區...
今天,我在我的機器上安裝了.NET Framework 4.5,希望能夠從Visual Studio 2010使用它,因爲它只是一個小的更新,不會對視覺造成問題 工作室 2010.不幸的是,我不是,即使手動刪除某些4.0,並添加相應的4.5程序集導致原來的4.0程序集仍在項目中引用。通過Visual Studio 2010針對.NET Framework 4.5
是否有可能從視覺對象版本4.5 Studio 2010如果是,如何?我真的很喜歡使用功能區...
Visual Studio 2010之前的Visual Studio的每個版本都綁定到特定的.NET框架。 (VS2008是.NET 3.5,VS2005是.NET 2.0,VS2003是.NET1.1)Visual Studio 2010及更高版本允許定位以前的框架版本,但不能用於將來的版本。您必須使用Visual Studio 2012才能使用.NET 4.5。
不完全正確 - .NET 3.0在VS版本之間發佈,並且可以在VS2005中使用。 –
是的,但只能通過擴展。它從一開始就沒有嵌入到VS 2005中(並且因此沒有完全優化)。 – thefellow3j
什麼是難題:遷移到vs2012 +來利用.net 4.5的精美,以犧牲部署msi安裝程序的心愛的vs2010安裝項目爲代價...「升級」感覺更像是一個側向... – ecoe
我可以想到這種情況很有用,但我們可以假設你無法獲得購買VS2012的資金,或者出現這種情況。如果是這樣的話,你有Windows 7+和VS 2010,你可以使用下面這些似乎可行的hack(但我還沒有完全使用這種方法部署應用程序)。
備份您的項目文件!
下載並安裝包含.NET 4.5 SDK的Windows 8 SDK。
在VS2010中打開您的項目。
在您的項目中創建一個名爲Compile_4_5_CSharp.targets
的文本文件,其中包含以下內容。 (或者只是下載here - 確保從文件名稱中刪除「.txt」擴展):
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Change the target framework to 4.5 if using the ".NET 4.5" configuration -->
<PropertyGroup Condition=" '$(Platform)' == '.NET 4.5' ">
<DefineConstants Condition="'$(DefineConstants)'==''">
TARGETTING_FX_4_5
</DefineConstants>
<DefineConstants Condition="'$(DefineConstants)'!='' and '$(DefineConstants)'!='TARGETTING_FX_4_5'">
$(DefineConstants);TARGETTING_FX_4_5
</DefineConstants>
<PlatformTarget Condition="'$(PlatformTarget)'!=''"/>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<!-- Import the standard C# targets -->
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- Add .NET 4.5 as an available platform -->
<PropertyGroup>
<AvailablePlatforms>$(AvailablePlatforms),.NET 4.5</AvailablePlatforms>
</PropertyGroup>
</Project>
卸載您的項目(右鍵 - >卸載)。
編輯項目文件(右鍵單擊 - >編輯* .csproj)。
請在項目文件中的以下變化:
一個。將默認Microsoft.CSharp.targets
替換爲步驟4中創建的目標文件
<!-- Old Import Entry -->
<!-- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> -->
<!-- New Import Entry -->
<Import Project="Compile_4_5_CSharp.targets" />
b。將默認平臺更改爲.NET 4.5
<!-- Old default platform entry -->
<!-- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> -->
<!-- New default platform entry -->
<Platform Condition=" '$(Platform)' == '' ">.NET 4.5</Platform>
c。添加AnyCPU
平臺以允許定位項目屬性中指定的其他框架。這應該只是第一<ItemGroup>
標籤之前的文件
<PropertyGroup Condition="'$(Platform)' == 'AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
.
.
.
<ItemGroup>
.
.
.
中添加保存更改並關閉*.csproj
文件。
重新載入您的項目(右鍵 - >重新載入項目)。
在配置管理器(Build - > Configuration Manager)中,確保爲您的項目選擇了「.NET 4.5」平臺。
仍然在配置管理器中,爲「.NET 4.5」創建一個新的解決方案平臺(可以將其基於「任何CPU」),並確保爲該解決方案選擇了「.NET 4.5」。
構建您的項目並檢查錯誤。
假設構建完成後,您可以驗證是否確實目標4.5通過向特定的4.5類的引用到你的源代碼:
using System;
using System.Text;
namespace testing
{
using net45check = System.Reflection.ReflectionContext;
}
當你編譯使用」 .NET 4.5"平臺的構建應該成功。當您在「任何CPU」平臺下的編譯,你應該得到一個編譯錯誤:
Error 6: The type or namespace name 'ReflectionContext' does not exist in
the namespace 'System.Reflection' (are you missing an assembly reference?)
這是瘋狂的,即使它的工作,像絲帶設計器的UI元素工作沒有大量的XAML和其他錯誤? srsly只是升級。 –
這確實有效。但是我只是使用它,所以我可以在安裝.NET Framework 4.5.1後繼續在VS2010上運行Moles。 –
除了David Woodward的回答外,我在第一個PropertyGroup中添加了'
僅供參考,如果你想創建一個VS2010安裝程序包,遺憾的是它僅面向.NET 4.工作在這附近,你必須添加NET 4.5作爲啓動條件。
將以下內容添加到安裝程序的啓動條件中(右鍵單擊,查看,啓動條件)。
在「搜索目標機器」中,右鍵單擊並選擇「添加註冊表搜索」。
Property: REGISTRYVALUE1
RegKey: Software\Microsoft\NET Framework Setup\NDP\v4\Full
Root: vsdrrHKLM
Value: Release
添加新的 「啓動條件」:
Condition: REGISTRYVALUE1>="#378389"
InstallUrl: http://www.microsoft.com/en-gb/download/details.aspx?id=30653
Message: Setup requires .NET Framework 4.5 to be installed.
其中:
378389 = .NET框架4.5
378675 =的.NET Framework 4.5.1與Windows 8.1
安裝378758 =安裝在Windows 8,Windows 7 SP1或Window上的.NET Framework 4.5.1小號Vista SP2的
379893 =的.NET Framework 4.5.2
啓動條件參考:http://msdn.microsoft.com/en-us/library/vstudio/xxyh2e6a(v=vs.100).aspx
我一直在努力與VS2010/DNFW 4.5集成,並終於得到了這個工作。從VS 2008開始,引入了一個由Visual Studio使用的名爲「Referenced Assemblies」的程序集緩存。 VS 2010的這個文件緩存位於\ Reference Assemblies \ Microsoft \ Framework.NetFramework \ v4.0。 Visual Studio從該位置加載框架程序集,而不是從框架安裝目錄加載。當微軟表示VS 2010不支持DNFW 4.5時,他們認爲的意思是是因爲在安裝DNFW 4.5時不會更新此目錄。一旦你用更新的DNFW 4.5文件替換了這個位置的文件,你會發現VS 2010將很高興地使用DNFW 4.5。
來自另一個搜索。爲我工作!
「如果您的操作系統支持.NET 4.5,則可以使用Visual Studio 2010並支持它。
右鍵單擊您的解決方案以添加參考(與您一樣)。當對話框顯示,選擇瀏覽,然後導航到以下文件夾:
C:\ Program Files文件(x86)的\參考大會\微軟\框架\ .Net框架\ 4.5
你會發現它在那裏。「
在句子「你會在那裏找到它」,它是什麼?我們選擇哪個文件夾中的哪個文件?他們中的一個會讓我們在VS 2010中使用.net 4.5嗎? –
您會找到名稱空間程序集。你可以添加你想要的任何一個。例如,我需要使用一種處理ZIP文件的方法。所以我找到了DLL「System.IO.Compression.dll」,並將其添加到我的項目中。然後,我可以明確列出我的代碼中的名稱空間並使用我需要的方法。 –
這對我不起作用。如果您刪除對系統的引用,然後瀏覽到.Net 4.5 System.dll並將其添加爲參考,則VS仍然會選擇4.0 System.dll Capt Nasty在此頁面上的答案適用於我,例如,將System.dll從C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.6複製到C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \框架\ .NETFramework \ V4.0。請注意,這是一個令人討厭的黑客行爲,可能會產生意想不到的後果。 – Jinlye
您必須升級到Visual Studio 2012 for .NET v4.5支持。 – Arran
當我嘗試在System.Threading.Tasks.Task.Run()方法中使用System.Threading.Tasks.Task.Run()方法時, VS 2010控制檯應用程序,如果你的項目是以.Net framework 4.0爲目標的話,這個方法不會顯示在Task類上,然後你意識到如果你願意的話VS2010不能以.Net framework 4.5爲目標 – RBT