没有find应用程序依赖关系清单中指定的程序集:

我在asp.net-core 2.0 preview1中开发了应用程序。 我使用Visual Studio 2017开发了Windows。

现在我想用Docker将它部署到Linux服务器上。

我创build了Docker文件:

FROM microsoft/aspnetcore:2.0 ARG source WORKDIR /app EXPOSE 44305 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "Aplication.dll"] 

之后运行命令:

 dotnet build -o obj/Docker/publish -c Release dotnet publish -o obj/Docker/publish -c Release docker build -t testapi-api . docker run -p 44305:80 --name api testapi-api 

在最后一个命令run我得到了下一个错误:

 An assembly specified in the application dependencies manifest (Aplication.deps.json) was not found: package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.0-preview1-final' path: 'lib/netcoreapp2.0/Microsoft.AspNetCore.Antiforgery.dll' This assembly was expected to be in the local runtime store as the application was published using the following target manifest files: manifest.win7-x64.xml;manifest.win7-x86.xml;manifest.osx-x64.xml;manifest.linux-x64.xml 

我是新的与asp.net核心,特别是与Docker。 所以任何帮助都很好。

您需要在dotnet publish命令中指定-r linux-x64参数,如下所示:

 dotnet publish -o obj/Docker/publish -c Release -r linux-x64 

这将做一个独立的部署。

尝试使用这个图像“2.0.0-preview1”。 基本上把第一行改为FROM microsoft / aspnetcore:2.0.0-preview1,如果你的本地有预览1的dotnet核心。

如果它不起作用,请检查您的本地dotnet核心版本,它指向2.0.0-preview2-final,然后在csproj文件中将所有引用指向2.0.0-preview2-final,然后使用2.0.0-preview2图片。 这会帮助你,我希望。