通过Visual Studio 2010定位.NET Framework 4.5

今天,我在我的机器上安装了.NET Framework 4.5,希望能够从Visual Studio 2010中使用它,因为它只是一个小的更新,不会对Visual Studio 2010造成问题。不幸的是,我不是,即使手动删除某些4.0并添加相应的4.5程序集导致原来的4.0程序集仍在项目中引用。

是否有可能瞄准从Visual Studio 2010版本4.5,如果是,如何? 我真的很喜欢用丝带…

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。

我可以想到在这种情况下有用的情况相当有限,但是假设您无法获得购买VS2012的资金或其他方面的影响。 如果是这样的话,你有Windows 7 +和VS 2010,你可能会使用下面的黑客我放在一起似乎工作(但我还没有完全部署一个应用程序使用此方法呢)。

  1. 备份你的项目文件!

  2. 下载并安装包含.NET 4.5 SDK的Windows 8 SDK。

  3. 在VS2010中打开你的项目。

  4. 在名为Compile_4_5_CSharp.targets的项目中创build一个文本文件,其中包含以下内容。 (或者只是在这里下载 – 确保从文件名中删除“.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> 
  5. 卸载你的项目(右键 – >卸载)。

  6. 编辑项目文件(右键单击 – >编辑* .csproj)。

  7. 在项目文件中进行以下更改:

    一个。 将默认的Microsoft.CSharp.targetsreplace为步骤4中创build的目标文件

     <!-- Old Import Entry --> <!-- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> --> <!-- New Import Entry --> <Import Project="Compile_4_5_CSharp.targets" /> 

    湾 将默认平台更改为.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> . . . 
  8. 保存您的更改并closures*.csproj文件。

  9. 重新加载你的项目(右键 – >重新加载项目)。

  10. 在configurationpipe理器(构build – >configurationpipe理器)确保为您的项目select“.NET 4.5”平台。

  11. 仍然在configurationpipe理器中,为“.NET 4.5”创build一个新的解决scheme平台(可以基于“任何CPU”),并确保为解决schemeselect了“.NET 4.5”。

  12. build立你的项目,并检查错误。

  13. 假设构build完成,您可以通过在源代码中添加对4.5特定类的引用来确认您确实定位了4.5:

     using System; using System.Text; namespace testing { using net45check = System.Reflection.ReflectionContext; } 
  14. 当您使用“.NET 4.5”平台编译时,构build应该成功。 当你在“任何CPU”平台下编译时,你应该得到一个编译器错误:

     Error 6: The type or namespace name 'ReflectionContext' does not exist in the namespace 'System.Reflection' (are you missing an assembly reference?) 

仅供参考,如果你想在VS2010中创build一个安装程序包,不幸的是它只针对.NET 4.要解决这个问题,你必须添加NET 4.5作为启动条件。

将以下内容添加到安装程序的启动条件(右键单击,查看,启动条件)。

在“search目标机器”中,右键单击并select“添加registrysearch”。

 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 Framework 4.5

378675 =与Windows 8.1一起安装的.NET Framework 4.5.1

378758 =在Windows 8,Windows 7 SP1或Windows Vista SP2上安装的.NET Framework 4.5.1

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使用的程序集caching,称为“引用程序集”。 VS 2010的这个文件caching位于\ Reference Assemblies \ Microsoft \ Framework.NetFramework \ v4.0。 Visual Studio从该位置加载框架程序集,而不是从框架安装目录加载。 当微软表示VS 2010不支持DNFW 4.5时,他们的意思是这个目录在安装DNFW 4.5时没有得到更新。 一旦你用更新的DNFW 4.5文件replace了这个位置的文件,你会发现VS 2010将很高兴地使用DNFW 4.5。

从另一个search。 为我工作!

“如果你的操作系统支持.NET 4.5,你可以使用Visual Studio 2010,它支持它。

右键点击你的解决scheme添加一个引用(和你一样)。 显示对话框时,select浏览,然后导航到以下文件夹:

C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .Net Framework \ 4.5

你会在那里find的。“