【问题标题】:Nuget Restore in a Docker ContainerDocker 容器中的 Nuget 还原
【发布时间】:2019-08-13 20:56:49
【问题描述】:

我正在尝试在 docker 容器中运行 nuget restore mySolution.sln

在大多数情况下,它似乎工作得很好。软件包似乎恢复正常,但在恢复之前,它显示此错误:

C:\src\myProject\mySolution.csproj(317,11):
错误 MSB4226:找不到导入的项目“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets”。

此外,尝试在 $(VSToolsPath) 的后备搜索路径中找到“WebApplications\Microsoft.WebApplication.targets”
      - “C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0”。

这些搜索路径在“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\msbuild.exe.Config”中定义。确认声明中的路径是正确的,并且该文件存在于磁盘上的任一搜索路径中。

根据我的阅读,这意味着我需要 nuget 包 MSBuild.Microsoft.VisualStudio.Web.targets。我做了一个nuget安装,但错误并没有消失。 (它只是将它放在我运行它的任何地方。我尝试将它与我的解决方案放在包文件夹中。两者都没有任何效果。)

如何使用命令行工具修复此错误?(没有 GUI,因为这是 docker 容器)。

【问题讨论】:

  • 我不认为这是您缺少的包。您缺少构建该 Web 项目所需的 SDK/目标。您缺少网络工作负载。

标签: visual-studio docker msbuild


【解决方案1】:

我假设您尝试构建的是一个 Web 应用程序,但您尚未在构建工具包中安装相应的工作负载。这就是导致此问题的原因。 (同意imps

打开Start menu中的Visual Studio Installer,你可以修改你的msbuild包的工作负载:

我只使用msbuild构建工具包在服务器上构建C++桌面项目,所以我只安装了Visual C++ build tools workload。对你来说,你必须安装build tools for Web applications,这样你才能获得必要的文件来构建网络应用程序。

更新:

error: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" was not found. 

安装Web development build tools 后,我现在在路径C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0 中获得新创建的WebApplications 文件夹。

【讨论】:

  • 不幸的是,我在 Docker 容器中执行此操作。我无法使用 GUI 工具...
  • @Vaccano 和 VS 一样,msbuild 包支持命令行安装。请参阅install options 和您需要的ID:Microsoft.VisualStudio.Workload.WebBuildTools
  • @Vaccano 我的installer.exe 是vs_buildtools_xxx.xxx.exe,所以我使用如下命令:vs_buildtools__1458634494.1562658743.exe --add Microsoft.VisualStudio.Workload.WebBuildTools --quiet--quiet 表示无UI安装,我认为你需要以管理员身份运行cmd。
  • 类似问题见herethis guide 可能会对你有所帮助:)
猜你喜欢
  • 2020-07-12
  • 2014-12-06
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多