我想使用Visual Studio 2012开发.net框架4.6.1应用程序.所以,我尝试为visual studio 2012安装4.6.1开发包.但是当我去这个链接安装框架时.它提供了两个链接,一个用于.NET Framework 4.6.1 Targeting Pack,另一个用于.NET Framework 4.6.1 Runtime.我应该安装哪一个?
我在我的机器上安装了Windows 10 Creators Update,并检查了注册表项,发现版本DWORD的值为460798(根据https://msdn.microsoft.com/en-us/library/hh925568(v=vs.110) ).aspx).
然而,当我启动Visual Studio 2015(Update 3)并且项目属性中的Target Framework下拉时,不会显示.NET Framework 4.7.目标.net平台页面(http://getdotnet.azurewebsites.net/target-dotnet-platforms.html#)未在VS 2015下显示 .net framework 4.7.
我甚至可以使用VS 2015定位.net框架4.7吗?如果有可能,我该怎么办?
快速问题 - 微软现在称之为"Microsoft .NET Framework 4.5.2开发包"的是什么,这在历史上被称为SDK?
我在 Visual Studio 2015 中编写了一个应用程序,它使用 C# 6.0 功能并针对 .NET 4.5.2。当我使用 Microsoft Build Tools 2015 构建它时,这是由我们的 TeamCity 服务器完成的,生成的 bin 文件夹还包含mscorlib.dll. 这里的问题是 mscorlib.dll被复制的是 .NET 4.6 DLL,这会导致运行时出现问题。
我已经用string.Format()新的字符串插值语法替换了我的调用来解决这个问题。然而,这将根本问题推到了地毯下,而不是解决它:为什么 .NET 4.6 DLL 包含在我的构建中,我如何强制将 4.5.2 DLL 包含在它的位置?
如果您对这给我造成的运行时问题感兴趣,它会导致我的:
string.Format(CultureInfo.InvariantCulture, "{0}='{1}'", "key", "value")
Run Code Online (Sandbox Code Playgroud)
被解释为(链接——仅存在于 .NET 4.6 中):
System.String System.String.Format(System.IFormatProvider, System.String, System.Object, System.Object)
Run Code Online (Sandbox Code Playgroud)
而不是(链接):
System.String System.String.Format(System.IFormatProvider, System.String, params System.Object[])
Run Code Online (Sandbox Code Playgroud)