【问题标题】:Build ASP.NET Core 1.1 preview4 project in Docker-image microsoft/aspnetcore-build:1.1.0-msbuild在 Docker-image microsoft/aspnetcore-build:1.1.0-msbuild 中构建 ASP.NET Core 1.1 preview4 项目
【发布时间】:2016-12-19 23:58:10
【问题描述】:

我目前正在尝试在 microsoft/aspnetcore-build:1.1.0-msbuild docker 映像中构建一个 ASP.NET Core 1.1 测试项目。

我在 Windows 10 Pro 64 上运行 Docker,并安装了最新的 CLI/SDK (1.0.0-preview4-004233)。我认为这就是问题所在。当前镜像使用(1.0.0-preview3-004056)并抛出错误“错误MSB4057:项目中不存在目标Restore。”当我以交互模式在正在运行的容器中执行“dotnet restore”时。

我的问题是: 是版本不匹配导致错误还是我遗漏了什么?我的猜测是它与 preview3 和 preview4 之间的一些特定于 msbuild 的更改有关。 我可以使用正确的 SDK 版本构建自己的 docker 映像吗?非常感谢提供优秀教程的链接。

复制步骤:

  • 安装最新的1.1 SDK
  • 打开 Powershell 并导航到一个新的空项目文件夹
  • 验证您是否拥有 preview4 "dotnet --info"
  • 创建新项目“dotnet new -t Web”
  • 打开 *.csproj 文件,将 netcoreapp1.0 更改为 netcoreapp1.1,然后 Microsoft.NETCore.App 版本为“1.1.0”。
  • 恢复包“dotnet restore”
  • 使用“dotnet run”进行测试
  • 以交互模式启动 docker-container docker run -it --rm -v "$pwd:/sln" --workdir /sln microsoft/aspnetcore-build:1.1.0-msbuild
  • 在正在运行的容器内使用“dotnet restore”强制出错

干杯 马丁

【问题讨论】:

    标签: docker asp.net-core .net-core asp.net-core-1.1


    【解决方案1】:

    工具仍处于预览阶段,关于 xproj/csproj 项目文件格式的变动很大。因此,preview3 和 preview4 之间的差异很可能对您的项目至关重要。

    在您的计算机上安装适当的(preview3)CLI。

    MS 网站上没有用户友好的 al 版本列表,但 in docker image you can see download location 是这样的:

    https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-dev-debian-x64.$DOTNET_SDK_VERSION.tar.gz
    

    将变量替换为所需的值:1.0.0-preview3-004056dotnet-dev-win-x64.1.0.0-preview3-004056.exe(第二个是使用来自 download page 的最新文件名猜测)。

    现在您需要将您的应用设置为使用适当的工具版本(现在您已经安装了两个)。创建global.json 文件:

    {
      "sdk": {
        "version": "1.0.0-preview3-004056"
      }
    }
    

    验证:从解决方案目录(或以下)运行dotnet --version 将打印1.0.0-preview3-004056,而从任何其他文件夹运行将打印1.0.0-preview4-004233

    【讨论】:

      猜你喜欢
      • 2017-09-24
      • 2019-09-28
      • 1970-01-01
      • 2022-01-19
      • 2017-08-30
      • 2016-06-10
      • 2021-03-02
      • 2017-05-27
      • 1970-01-01
      相关资源
      最近更新 更多