![](/img/trans.png)
[英]Node packages not building on Windows 8.1 - Missing 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.