簡體   English   中英

Windows docker 容器中缺少 Microsoft.Cpp.Default.props

[英]Missing Microsoft.Cpp.Default.props inside Windows docker container

我正在嘗試使用 Visual Studio 構建工具構建 Windows docker 映像。 正在安裝構建工具,但缺少 Microsoft.Cpp.Default.props。

*error MSB4019: The imported project "C:\
Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.Default.props" was not found. Confirm that the expression in the Import declaration "C:\P
rogram Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VC\v160\\Microsoft.Cpp.Default.props" is correct, and that the file exists on disk.*

以下是來自 dockerfile 的片段:

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019
 
WORKDIR "C:\Users\ContainerUser"

RUN powershell.exe New-Item BuildSoftware -ItemType "directory"

COPY vs_buildtools__1759529960.1620654219.exe "C:\Users\ContainerUser\BuildSoftware"

RUN C:\Users\ContainerUser\SocialBuild\vs_buildtools__1759529960.1620654219.exe --quiet --add --includeRecommended Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools --add Microsoft.VisualStudio.Workload.WebBuildTools --add Microsoft.VisualStudio.Workload.NetCoreBuildTools --add Microsoft.VisualStudio.Component.Windows10SDK.18362 --add Microsoft.VisualStudio.Workload.VCTools –-includeOptional --add Microsoft.Net.Component.4.7.TargetingPack --add Microsoft.VisualStudio.Workload.OfficeBuildTools --add Microsoft.VisualStudio.Workload.UniversalBuildTools --add Microsoft.VisualStudio.Workload.VisualStudioExtensionBuildTools --add Microsoft.VisualStudio.Workload.MSBuildTools --wait

即使使用 Microsoft.VisualStudio.Workload.VCTools,cpp 文件/工具也不會安裝在 Docker 容器中。

還嘗試在npm install --global --production windows-build-tools使用npm install --global --production windows-build-tools和以下巧克力命令進行安裝。

choco install vcredist-all -Y
choco install visualstudio2019buildtools -Y
choco install visualstudio2019community -Y*

尋找問題的最佳解決方案

經過大量的谷歌搜索和嘗試,我創建了一個包含 *.cpp.props 文件的 Dockerfile:

FROM mcr.microsoft.com/dotnet/framework/sdk:3.5-windowsservercore-ltsc2019
ADD https://aka.ms/vs/16/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe
SHELL ["cmd", "/S", "/C"]
RUN (start /w C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache modify `
    --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools" `
    --add    Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools `
    --add    Microsoft.VisualStudio.Workload.VCTools --includeRecommended `
    --add    Microsoft.Component.MSBuild `
    --remove Microsoft.VisualStudio.Component.Windows10SDK.10240 `
    --remove Microsoft.VisualStudio.Component.Windows10SDK.10586 `
    --remove Microsoft.VisualStudio.Component.Windows10SDK.14393 `
    --remove Microsoft.VisualStudio.Component.Windows81SDK `
    || IF "%ERRORLEVEL%"=="3010" EXIT 0)
ENTRYPOINT ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\Tools\\VsDevCmd.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]

標記必須顯式添加的 MSBuild 組件。 可能不需要“ManagedDesktopBuildTools”,但對於我的項目,我結合了 C#/C++ 解決方案。

暫無
暫無

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

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