我目前正在尝试在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镜像吗?很好地赞赏了很好的教程链接。
复制步骤:
干杯 马丁
答案 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-004056
和dotnet-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