Bas*_*asj 5 c# windows msbuild visual-studio visual-c++
注意:我已经阅读过如何在不安装 IDE 的情况下在构建服务器上安装 VS2017 版本的 msbuild?但这并不能解决完全无 GUI、仅脚本安装的问题。
这些年来,我注意到以下几点:
我从Github下载了一个项目;或者打开我的一个旧项目(比如 4 年前的项目)
跑步msbuild.exe theproject.sln
哎呀,我没有正确的 Visual Studio 版本/.NET Framework 版本/缺少正确的 SDK(这里是许多其他示例情况)
然后花 X 小时浏览https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019等网站,安装一个包,然后注意到它不是正确的(msbuild仍然失败),下载另一个包,安装它等等。
最后你已经下载了 8 GB 的软件包,等待下载,等待安装,等待重新启动,但你仍然不确定它是否有效
您的计算机现在混乱不堪,同时安装了 5 个不同版本的 SDK,这些 SDK 可能会相互冲突(Z 版本是否覆盖/卸载了 Y 版本?)
这可能是避免此问题的解决方案:
如何从命令行安装所需的 MS 构建工具?(我不想使用任何 IDE,我想编写所有内容的脚本)
如果可能的话,我会一次性为build.bat每个项目创建一个文件,如下所示:
msbuildget --package=VC14 --installdir=c:\buildtools\vc14 # automatically download and install
C:\buildtools\vc14\bin\msbuild.exe myproject.sln
Run Code Online (Sandbox Code Playgroud)
或者
msbuildget --package=.NET-35 --installdir=c:\buildtools\net35
C:\buildtools\net35\bin\msbuild.exe myproject.sln
Run Code Online (Sandbox Code Playgroud)
这个怎么做?
通过这种方法,即使你打开一个6年的项目,你也应该能够构建它。
我刚刚花了很长时间试图解决这个问题。我最终得到了这个:
.\vs_buildtool.exe --passive --wait --add Microsoft.VisualStudio.Workload.VCTools;includeRecommended
Run Code Online (Sandbox Code Playgroud)
请注意使用includeRecommended以避免单独添加组件。includeOptional也可用。您还可以使用eg--includeRecommended标志来包含针对所有工作负载的推荐(请参阅此处)。
或者使用以下命令安装winget:
winget install -e --id Microsoft.VisualStudio.2022.BuildTools --override "--passive --wait --add Microsoft.VisualStudio.Workload.VCTools;includeRecommended"
Run Code Online (Sandbox Code Playgroud)
希望这对其他人有用
如何(从命令行)自动安装 Visual Studio 构建工具构建环境(适用于 C++ 版本 X、.NET C# 版本 Z 等)
首先,您应该注意,所有工作负载或包都需要安装,并且它们将集成到 Build Tool 中,您需要的是它们的工作负载组件 ID。
您可以参考此文档获取buildtool相关的Component ID。
此外,本文档还列出了命令行安装说明。并且顺序与构建工具相同。
建议
您可以尝试以下脚本:
// This is for desktop development and also add the net framwork 3.5
vs_buildtool_xxx.exe --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools^
--add Microsoft.Net.Component.3.5.DeveloperTools^
--add Microsoft.Net.Component.4.5.2.TargetingPack^
--installPath C:\BuildTools
C:\BuildTools\MSBuild\Current\Bin\MSBuild.exe myproject.sln
Run Code Online (Sandbox Code Playgroud)
-add您可以通过带有相关组件 ID 的命令添加更多工作负载或包。
如果你想构建c++项目,你可以尝试下面的例子:
vs_buildtool_xxx.exe --add Microsoft.VisualStudio.Workload.VCTools^
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64^
--add Microsoft.VisualStudio.Component.VC.140^
--installPath C:\BuildTools
C:\BuildTools\MSBuild\Current\Bin\MSBuild.exe myproject.sln
Run Code Online (Sandbox Code Playgroud)
Microsoft.VisualStudio.Component.VC.140意思是VS2015的C++构建工具。
重要提示:使用命令行与 vs_installer UI 有很大不同。当你点击vs_installer UI中的c++构建工具时,你可以看到它会自动安装相关组件。
这些组件列在Microsoft.VisualStudio.Workload.VCTools 工作负载下,您可以选择是否安装它们。
但是,并不指定工作负载将安装所有这些。
当您使用命令行时,它不会自动安装任何相关组件,因此您需要手动一一添加。
对于 C++ 项目,您可以使用以下命令来安装它:
vs_buildtool.exe --add Microsoft.VisualStudio.Workload.MSBuildTools^
--add Microsoft.VisualStudio.Workload.VCTools^
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64^
--add Microsoft.VisualStudio.Component.Windows10SDK.18362^
--add Microsoft.VisualStudio.Component.VC.CMake.Project^
--add Microsoft.VisualStudio.Component.TestTools.BuildTools^
--add Microsoft.VisualStudio.Component.VC.ASAN^
--add Microsoft.VisualStudio.Component.VC.140
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11867 次 |
| 最近记录: |