今天我在我的机器上安装了 .NET Framework 4.5,希望能够从 Visual Studio 2010 中使用它,因为它只是一个小更新,不会对 Visual Studio 2010 造成问题。不幸的是我没有,甚至手动删除某些 4.0并添加相应的 4.5 程序集会导致项目中仍引用原始 4.0 程序集。
是否可以从 Visual Studio 2010 定位 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,您也许可以使用我整理的以下 hack,这似乎可行(但我尚未使用此方法完全部署应用程序)。
备份你的项目文件!!!
下载并安装包含 .NET 4.5 SDK的Windows 8 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”平台进行编译时,构建应该会成功。当你在“Any 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 使用的程序集缓存,称为“引用程序集”。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 一起工作。
从另一个搜索。为我工作!
“你可以使用 Visual Studio 2010,它确实支持它,前提是你的操作系统支持 .NET 4.5。
右键单击您的解决方案以添加参考(如您所做的那样)。当对话框显示时,选择浏览,然后导航到以下文件夹:
C:\Program Files(x86)\Reference Assemblies\Microsoft\Framework\.Net Framework\4.5
你会在那里找到的。”