在不等待VisualStudio下一次更新的情况下尝试最新的C++编译器工具集

2016年4月22日更新:NuGet 包裹是 现在每天都在上传。负载不会每天都改变,但是您应该每五天左右就会看到新的bug修复和/或功能更新。请参见此处的博客公告: https://blogs.msdn.microsoft.com/vcblog/2016/04/26/stay-up-to-date-with-the-visual-c-tools-on-nuget . 去年11月,我们宣布了 VisualC++构建工具,一个独立的C++安装程序 . 我们请求您对我们的经历给予反馈,并衷心感谢您通过博客评论和其他渠道给予我们的巨大回应。我们将很快更新VC++构建工具,并将在更新中包含您的一些建议。 【2016年4月更新:构建工具正式发布: https://blogs.msdn.microsoft.com/vcblog/2016/03/31/announcing-the-official-release-of-the-visual-c-build-tools-2015/ ] 有些人认为VC++构建工具在创建获取VC++工具的轻量级方法方面做得不够。有些人要求通过xcopy安装。其他人建议我们使用包管理器,甚至只使用zip文件。从您的反馈中可以清楚地看到,许多人只是想在visualstudio中用一种简单的方法试用最新的编译器。今天我们宣布一个新的实验:将VC++工具集作为NuGube包发布,它可以添加到任何C++项目或针对桌面的解决方案。安装这个NuGet包将提供VC++编译器、头文件和库的新副本。您可以使用这个预览工具集编译代码,一旦签出了新工具,就可以卸载包并返回到VisualStudio安装的受支持的工具集。为什么要尝试新工具?VisualC++中发生了很多变化:支持C++ 17语言中的新特性,如 协同程序 ,支持建议的功能,例如 C++模块 ,以及标准一致性的每日错误修复。如果您正在跟踪我们在新语言特性方面的进展,或者一直在等待一致性修复,则不必等待下一次VS更新。安装NuGet包是测试新编译器的最快方法。我们今天通过NuGet提供的体验非常有限:它只是安装在项目或解决方案中的一个大的(226mb)NuGet包。我们对如何让体验更好有了一些想法:例如,在机器范围内安装,或者只允许您选择一个主机或目标体系结构。我们现在正在手动发布包,但是会考虑自动化,这样我们就可以每晚进行更新,如果这对C++开发人员有用。NuGet包将安装一个编译器、头文件和库来覆盖当前的VS版本,但是您的项目将继续从您的VS安装中获取其他库。这个软件包不包括像ATL或MFC这样的特殊用途的库,它们现在只能通过VS获得。如果你需要一个新版本的Windows库或通用CRT,你必须安装一个新的 Windows开发工具包 .我们希望您试用NuGet安装程序,并向我们发送有关您希望我们在何处着手该项目的反馈。你可以在博客上留言,也可以直接发邮件给我们 VCNuGetTools@microsoft.com . 这是一个预发布的项目,所以我们不能正式支持它,但我们很乐意尽可能提供帮助。

null

在C++项目中或解决方案中安装预览VC++工具集

对于熟悉在Visual Studio中使用NuGet的用户,服务器位于以下位置: https://vcppdogfooding.azurewebsites.net/nuget . 目前只有一个包,所以只要浏览feed,你一定能找到它。如果您需要更详细的演练,请继续阅读。现在您只能在项目或解决方案中本地安装NuGet包。只需右键单击项目或解决方案 然后选择Manage NuGet Packages。 1 因为这些包不在NuGet.org上,所以您必须设置一个新的包源。单击对话框右上角的齿轮图标: 2 这将打开“选项”对话框以打开包源。点击 + 按钮添加新包。完成此操作后,必须编辑对话框底部的名称和源代码。输入您喜欢的任何名称,但请确保源是http://vcppdogfooding.azurewebsites.net/nuget/. 击中 好的 按钮将关闭对话框并将您带回NuGet包管理器。 3 在对话框顶部选择新的包源,然后单击“浏览”选项卡。 确保单击Include prerelease复选框 否则你什么都看不到。一旦包管理器连接到服务器,您应该会看到一个名为VisualCppTools的包。选择它并单击 安装 右边的按钮。单击接下来的几个对话框(确保仔细检查第二个对话框上的许可证),然后安装NuGet包。 4 当您重新构建项目或解决方案时,将使用预览C++工具集。其他一切都不会改变开发者的体验IntelliSense、源代码浏览、调试都应该是一样的。你只是在使用新的编译器和库。当您想返回到visualstudio附带的官方支持的工具集时,只需返回NuGet Package Manager对话框并选择Installed选项卡。在那里你可以完全卸载预览工具集。

使用VC++构建工具SKU安装预览VC++工具集

您使用的是VC++构建工具SKU吗?对您来说,试用预览工具集需要做更多的工作,但是很容易做到。你可以这样做。首先,您需要获得NuGet命令行工具。下载链接和文档都位于以下链接: https://docs.nuget.org/consume/command-line-reference . 运行nuget.exe时,需要提供指向服务器的源参数和任何命令上的-Prerelease开关。下面是安装预览工具集的命令(如中所示的命令 蓝色 输出为黑色):

C:	mp>nuget install VisualCppTools -source https://vcppdogfooding.azurewebsites.net/nuget/ -PrereleaseFeeds used:https://vcppdogfooding.azurewebsites.net/nuget/Attempting to gather dependencies information for package 'VisualCppTools.14.0.23811-Pre' with respect to project 'C:	mp', targeting 'Any,Version=v0.0'Attempting to resolve dependencies for package 'VisualCppTools.14.0.23811-Pre' with DependencyBehavior 'Lowest'Resolving actions to install package 'VisualCppTools.14.0.23811-Pre'Resolved actions to install package 'VisualCppTools.14.0.23811-Pre'Adding package 'VisualCppTools.14.0.23811-Pre' to folder 'C:	mp'Added package 'VisualCppTools.14.0.23811-Pre' to folder 'C:	mp'Successfully installed 'VisualCppTools 14.0.23811-Pre' to C:	mp'

最后,如果使用VisualC++的构建工具命令提示,则必须编辑它们以指向 预览的安装目录。最简单的方法是编辑文件 vcbuildtools.bat 您将在生成工具命令提示的同一目录中找到。在我的系统里,他们在 Program Files (x86)Microsoft Visual C++ Build Tools . 如果您的构建工具也安装在那里,那么您需要以管理员权限运行编辑器(例如,搜索记事本,右键单击,然后选择以管理员身份运行)在批处理文件中有许多奇特的命令脚本,但您只需要添加一行。它覆盖了 VCInstallDir 脚本将环境变量从注册表中取出之后。这是我的文件的顶部,自定义到我的安装目录 c: mp ,与我添加的行 蓝色 :

@echo offset curDir=%~dp0@call :GetWindowsSdkDir@call :GetWindowsSdkExecutablePath32@call :GetWindowsSdkExecutablePath64@call :GetExtensionSdkDir@call :GetVCInstallDir@call :GetUniversalCRTSdkDirset VCInstallDir=C:	mpVisualCppTools.14.0.23811-Prelibativeif not "%UniversalCRTSdkDir%" == "" @set UCRTContentRoot=%UniversalCRTSdkDir%if not exist "%~dp0..MSBuildMicrosoft.Cppv4.0v140" goto error_no_VCTARGETScd "%~dp0..MSBuildMicrosoft.Cppv4.0v140"set VCTargetsPath=%cd%cd %curDir%

请注意,您不能仅覆盖 VCInstallDir 因为脚本在 VCInstallDir . 是的,停止设置 VCInstallDir 当我们要重写它时,环境变量,但我将把它作为练习留给读者。安装程序包并编辑 vcbuildtools.bat ,运行任何生成工具命令提示都会导致调用预览工具集。您可以通过运行 cl -Bv 要显示编译器的版本及其运行位置,请执行以下操作:

C:Program Files (x86)Microsoft Visual C++ Build Tools>cl -BvMicrosoft (R) C/C++ Optimizing Compiler Version 19.00.23811 for x86Copyright (C) Microsoft Corporation.  All rights reserved.Compiler Passes: C:	mpVisualCppTools.14.0.23811-Prelibativeincl.exe:        Version 19.00.23811.0 C:	mpVisualCppTools.14.0.23811-Prelibativeinc1.dll:        Version 19.00.23811.0 C:	mpVisualCppTools.14.0.23811-Prelibativeinc1xx.dll:      Version 19.00.23811.0 C:	mpVisualCppTools.14.0.23811-Prelibativeinc2.dll:        Version 19.00.23811.0 C:	mpVisualCppTools.14.0.23811-Prelibativeinlink.exe:      Version 14.00.23811.0 C:	mpVisualCppTools.14.0.23811-Prelibativeinmspdb140.dll:  Version 14.00.23811.0 C:	mpVisualCppTools.14.0.23811-Prelibativein1033clui.dll: Version 19.00.23811.0cl : Command line error D8003 : missing source filename

最后

请试用工具,让我们知道你的想法!我们对这个项目的发展感到很兴奋,但如果没有你的想法和建议,我们就无法在工作或项目中使用通过NuGet提供的VC++工具。请在此博客上留言或发邮件至 VCNuGetTools@microsoft.com . 谢谢您!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享