今天,我安装了.NET Framework 4.5我的机器上期待能够从Visual Studio 2010中使用它,因为它只是一个小的更新是should't造成问题的Visual Studio 2010。可惜我不是,即使手动删除某些4.0并添加相应的4.5组件导致原来的4.0组件项目仍然被引用。
是否有可能从Visual Studio 2010中,如果是,如何针对4.5版本? 我真的很喜欢用丝带...
今天,我安装了.NET Framework 4.5我的机器上期待能够从Visual Studio 2010中使用它,因为它只是一个小的更新是should't造成问题的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中,您也许可以使用下面的技巧我放在一起,这似乎工作(但使用这种方法但我还没有完全部署的应用程序)。
备份您的项目文件!
下载并安装Windows 8的SDK包括了.NET 4.5 SDK。
打开VS2010项目。
在项目中创建一个名为的文本文件Compile_4_5_CSharp.targets
包含以下内容。 (或者只是下载这里 -请务必删除文件名“.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" />
湾 默认的平台更改为.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
文件。
刷新您的项目(右键 - >刷新项目)。
在配置管理器(建设 - >配置管理器)确保” .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?)
仅供参考,如果你想创建一个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 =的.NET Framework 4.5.1安装在Windows 8中,Windows 7 SP1和Windows Vista SP2
379893 = .NET框架4.5.2
启动条件参考: http://msdn.microsoft.com/en-us/library/vstudio/xxyh2e6a(v=vs.100).aspx
我一直在努力与VS2010 / DNFW 4.5集成,并终于得到了这个工作。 在VS 2008中开始,组件的缓存介绍所使用的Visual Studio称为“引用的程序集”。 2010年VS此文件缓存位于\参考大会\微软\ Framework.NetFramework \ V4.0。 Visual Studio的负载框架组件从该位置,而不是从框架安装目录。 当微软表示,VS 2010不支持DNFW 4.5,他们的意思是安装DNFW 4.5时,这个目录没有更新。 一旦你已经取代了在此位置与更新的DNFW 4.5文件中的文件,你会发现,相较于2010年将愉快地与DNFW 4.5功能。
从另一个搜索。 为我工作!
“您可以使用Visual Studio 2010和它支持它,只要您的操作系统支持.NET 4.5。
右键单击您的解决方案添加一个引用(因为你这样做)。 当对话框显示,选择浏览,然后导航到以下文件夹:
C:\ Program Files文件(x86)的\参考大会\微软\框架\ .Net框架\ 4.5
你会在那里找到它。”