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

我目前正在试图获得一个ASP.NET Core 1.1的testing项目,以build立在Microsoft / aspnetcore-build:1.1.0-msbuild docker镜像中。

我在Windows 10 Pro 64上运行Docker,并安装了最新的CLI / SDK(1.0.0-preview4-004233)。 我认为这是问题所在。 当前图像使用(1.0.0-preview3-004056)并引发错误“错误MSB4057:目标还原在项目中不存在”。 当我在交互模式下运行容器内执行“dotnet恢复”。

我的问题是:这是版本不匹配造成的错误还是我错过了什么? 我的猜测是,它必须处理一些预览3和预览4之间的特定于msbuild的更改。 我可以build立自己的使用正确的SDK版本的docker图像吗? 很好的链接到很好的教程。

重复步骤:

  • 安装最新的1.1 SDK
  • 打开Powershell并导航到一个新的空的项目文件夹
  • validation你有预览4“dotnet –info”
  • 创build新项目“dotnet new -t Web”
  • 打开* .csproj文件将netcoreapp1.0更改为netcoreapp1.1,将Microsoft.NETCore.App版本更改为“1.1.0”。
  • 还原包“dotnet恢复”
  • 用“dotnet运行”
  • 以交互模式启动docker-container docker run -it –rm -v“$ pwd:/ sln”–workdir / sln microsoft / aspnetcore-build:1.1.0 -msbuild
  • 在正在运行的容器内使用“dotnet恢复”强制错误

干杯马丁

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

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

MS站点上没有用户友好的al版本列表,但是在docker映像中,您可以看到如下所示的下载位置 :

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

用所需的值replacevariables: 1.0.0-preview3-004056dotnet-dev-win-x64.1.0.0-preview3-004056.exe (其次是猜测使用来自下载页面的最新文件名)。

现在你需要设置你的应用程序使用适当的工具版本(现在你有两个安装)。 使用以下命令创buildglobal.json文件:

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

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