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

时间:2016-12-19 15:31:20

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

我目前正在尝试在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:项目中不存在目标还原”。当我在交互模式下在正在运行的容器中执行“dotnet restore”时。

我的问题是: 是版本不匹配导致错误还是我遗漏了什么?我的猜测是它与preview3和preview4之间的某些msbuild特定更改有关。 我可以构建自己的使用正确SDK版本的docker镜像吗?很好地赞赏了很好的教程链接。

复制步骤:

  • 安装最新的1.1 SDK
  • 打开Powershell并在新的空项目文件夹中导航
  • 确认您有预览4“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”强制执行错误

干杯 马丁

1 个答案:

答案 0 :(得分:1)

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

将适当的(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