簡體   English   中英

如何在 Visual Studio 中安裝 (v142) 構建工具

[英]How to install (v142) Build tools in Visual studio

當我嘗試在 Visual Studio 中構建某些東西時,visual studio 會向我顯示一些警告,然后如果我忽略它並構建,則會發生錯誤。

    error MSB8020: The build tools for v142 (Platform Toolset = 'v142') 
    cannot be found. To build using the v142 build tools, please install 
    v142 build tools.

它還會向我顯示一個替代選項,我也嘗試過但不起作用。

    Alternatively, you may upgrade to the current 
    Visual Studio tools by selecting the Project menu or right-click the 
    solution, and then selecting "Retarget solution".

最重要的是,您需要安裝 Visual Studio 2019 才能訪問 v142 工具。

隨着 Visual Studio 的不同版本(VS2015、VS2017、VS2019),Microsoft 還發布了不同的構建工具版本,因為它們不斷改進編譯器並提供附加功能並滿足更新的語言標准(C++、C++11、C++ 17 等)。 請參閱Visual Studio 2015 未檢測到 v141 (2017) 構建工具

另請參閱這篇關於 VS2017 構建工具和從 VS2015 訪問舊版 v140 的 Microsoft 博客文章, Visual Studio 構建工具現在包括 VS2017 和 VS2015 MSVC 工具集

你們中的許多人告訴我們,您仍然需要 Visual Studio 2015 的 MSVC v140 工具集來繼續構建舊代碼庫。 我們已更新 Visual Studio 構建工具以包含來自 Visual Studio 2015 更新 3 的 v140 工具集,包括最新的服務版本。 您可能會注意到編譯器工具集構建版本可能與完整 VS 2015 安裝中的版本不匹配,即使它們是相同的編譯器。 發生這種情況是因為我們在可能在不同日期構建的不同分支中構建完整的 Visual Studio 和 Visual Studio 構建工具。

默認情況下,Visual Studio 構建工具中的 Visual C++ 構建工具工作負載將安裝來自 VS2017 的最新 v141 工具集。 VS2015 的 v140 工具集將與 v141 工具集並行安裝。 要安裝它們,只需選擇“可選”部分底部的“VC++ 2015.3 v140 桌面工具集 (x86,x64)”。

就您而言,V142 構建工具是隨 VS2019 一起發布的。 v142 似乎不適用於 VS2017。 VS2017 的最新構建工具看起來是 v141。

您可以使用 Visual Studio 安裝程序通過在列表中添加或刪除來修改可用的構建工具。 這個 SO 帖子描述了一個類似的問題,但在 VS2015 Visual Studio 安裝中缺少 v140。 MSbuild 錯誤:找不到 v140(平台工具集 = 'v140')的構建工具

但是,如果 Microsoft 尚未為您正在使用的 Visual Studio 發布特定的構建工具版本,則它不會顯示在可用工具集列表中。

看起來從 VS2015 開始,Microsoft 提供了一個在 VS 2015、VS2017 和 VS2019 之間共享的標准 Visual Studio 引擎,其中構建工具和各種組件正在更新,以提供新的特性和功能以及新的語言標准合規性。 Visual Studio 版本與 Visual Studio 版本可以使用哪些構建工具和組件之間存在依賴關系,例如 v142 不適用於 VS2017,這很可能是為了鼓勵購買較新的產品。

安裝VS2019后安裝VS2017

作為旁注,在對這個問題進行一些發現時,我發現一些文章表明,如果您最近安裝了 Visual Studio,然后安裝了早期版本的 Visual Studio,則默認目標構建工具也可以更改為早期安裝的構建工具。

換句話說,如果你已經安裝了默認目標為 v142 的 VS2019,然后再安裝 VS2017,那么默認目標將變為 v141,需要你在使用 VS2019 時實際將構建目標設置為 v142。

我遇到了同樣的問題,但是當嘗試使用 VS2017 打開在 VS2019 中創建的項目時,我在我的項目中進行了更改:

轉到:Project->Properties->General->Platform Toolset 並更改為 VS 的當前版本。

我遇到了同樣的問題,但我想保留 Visual Studio 2017、Visual Studio 2019 和 Visual Studio 2022 對構建相同項目的支持。

我所做的是編輯我的.vcxproj ,這是一個 MSBuild 格式的文件,如下所示:

之前(工具集 1.42,僅適用於 Visual Studio 2019,在 Visual Studio 2017 和 2022 中失敗):

...
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    ...
    <PlatformToolset>v142</PlatformToolset>
    ...
  </PropertyGroup>
...

之后,每個 Visual Studio 版本都使用自己的工具集版本:

...
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    ...
    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
    <PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
    <PlatformToolset Condition="'$(VisualStudioVersion)' == '17.0'">v143</PlatformToolset>
    ...
  </PropertyGroup>
...

我在兩台不同的計算機上同時使用 Visual Studio 2017 和 Visual Studio 2019,並且平台工具集經常出現問題。

在 VS 2019 上,打開使用 VS2017 創建的解決方案/項目時,我通常只需轉到頂部菜單欄中的“項目”並選擇“重定向解決方案”(這可能將平台設置為 V142)。

相反,在 VS 2017 上,當打開使用 VS2019(平台工具集 v142)創建的解決方案/項目時,要使其工作,我需要將其“降級”到平台 v141。 為此,我右鍵單擊項目(不是解決方案)並選擇屬性,然后選擇“常規”並查找我設置為“Visual Studio 2017 (v141)”的“平台工具集”,然后我可以再次編譯而不會出錯.

設置正確平台工具集的屬性面板

這對我有用:進入ProjectName.vcxproj文件並刪除 v142 構建腳本並替換為與您正在使用的 Microsoft Visual Studio 版本相對應的構建腳本,或者刪除腳本並重新定位您的項目(如果它是升級的 MVSC)。

安裝VS2019的最新升級后,我遇到了與原始海報完全相同的問題,即錯誤MSB8020 re:在VS2017中構建應用程序。 我使用了系列中沒有構建的最簡單的應用程序(均出現上述錯誤),並使用了“重定向解決方案”,選擇了 Windows SDK 版本 10.0.17763.0。 之后,我進行了重建,應用程序構建得很好。 我檢查了解決方案中每個項目的屬性,如您所料,Windows SDK 版本已更改為 10.0.17763.0。

然后當我打開其他 VS2017 應用程序時,它們都構建得很好,沒有做任何更改(這些應用程序之前都失敗了)。 但是,他們的項目屬性仍然指的是 SDK 版本 10.0.14393.0,大概是 VS2019 版本。 現在,所有應用程序都“神奇地”將其工具集顯示為 Visual Studio 2017 (v141)。 HTH,即使沒有解釋它為什么起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM