在 Docker-image microsoft/aspnetcore-build:1.1.0-msbuild 中构建 ASP.NET Core 1.1 preview4 项目

Build ASP.NET Core 1.1 preview4 project in Docker-image microsoft/aspnetcore-build:1.1.0-msbuild

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

我 运行正在 Docker Windows 10 Pro 64 上安装最新的 CLI/SDK (1.0.0-preview4-004233)。我认为问题就在这里。当前图像使用(1.0.0-preview3-004056)并在交互模式下在 运行ning 容器中执行 "dotnet restore" 时抛出错误 "error MSB4057: The target Restore does not exist in the project."。

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

复制步骤:

干杯 马丁

工具仍处于预览阶段,关于 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