C# 找不到应用程序依赖项清单中指定的程序集:

C# 找不到应用程序依赖项清单中指定的程序集:,c#,docker,asp.net-core,dockerfile,C#,Docker,Asp.net Core,Dockerfile,我在asp.net-core 2.0 preview1中开发了应用程序。 我使用Visual Studio 2017在windows上开发 现在我想使用Docker将其部署到Linux服务器 我创建了Docker文件: FROM microsoft/aspnetcore:2.0 ARG source WORKDIR /app EXPOSE 44305 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "Aplication.dl

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

现在我想使用Docker将其部署到Linux服务器

我创建了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-core新手,尤其是Docker。因此,这方面的任何帮助都非常有用。

尝试使用此图像“2.0.0-preview1”。基本上将第一行更改为FROM microsoft/aspnetcore:2.0.0-preview1,如果您的本地具有preview 1 dotnet core


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

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

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

这将进行独立部署。

您尝试过dotnet还原吗?是的,我尝试过,但仍然出现相同的错误