注:我已经读过如何在不安装 IDE 的情况下在构建服务器上安装 VS2017 版本的 msbuild? https://stackoverflow.com/questions/42696948/how-can-i-install-the-vs2017-version-of-msbuild-on-a-build-server-without-instal但这并不能通过完全无 GUI、仅脚本安装来解决。
这些年来,我注意到以下几点:
-
我从Github下载了一个项目;或者打开我的一个旧项目(比如 4 年前的项目)
-
run msbuild.exe theproject.sln
-
哎呀,我没有正确的 Visual Studio 版本/.NET Framework 版本/缺少正确的 SDK(示例情况here https://stackoverflow.com/questions/62550657/c-sharp-compiler-sdk-and-msbuild-for-net-framework等等)
-
然后花 X 小时浏览类似的网站https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019 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
or
msbuildget --package=.NET-35 --installdir=c:\buildtools\net35
C:\buildtools\net35\bin\msbuild.exe myproject.sln
这个怎么做?
通过这种方法,即使你打开一个6年的项目,你也应该能够构建它。
我刚刚花了很长时间试图解决这个问题。我最终得到了这个:
.\vs_buildtool.exe --passive --wait --add Microsoft.VisualStudio.Workload.VCTools;includeRecommended
注意使用includeRecommended
以避免单独添加组件。includeOptional
也可用。您还可以使用例如--includeRecommended
包含推荐的标志all工作负载(参见here https://learn.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio?view=vs-2022#install-update-modify-repair-uninstall-and-export-commands-and-command-line-parameters).
或者使用安装winget
:
winget install -e --id Microsoft.VisualStudio.2022.BuildTools --override "--passive --wait --add Microsoft.VisualStudio.Workload.VCTools;includeRecommended"
希望这对其他人有用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)