Dll ';网络出版';引用不存在的库目录中的依赖项时出错

Dll ';网络出版';引用不存在的库目录中的依赖项时出错,dll,asp.net-core,nuget,travis-ci,.net-standard,Dll,Asp.net Core,Nuget,Travis Ci,.net Standard,我正试图通过Travis CI将dotnet核心web应用程序部署到Ubuntu VPS。我正在使用dotnet restore&&dotnet publish-c release-r ubuntu.16.04-x64在scp转移到服务器之前进行构建。Travis上的构建和部署完成得很好,但当我在服务器上重新启动应用程序服务时,会出现如下错误 错误:未找到依赖项清单中指定的程序集--包:“microsoft.aspnetcore.antiforgery”,版本:“1.1.1”,路径:“lib/n

我正试图通过Travis CI将dotnet核心web应用程序部署到Ubuntu VPS。我正在使用
dotnet restore&&dotnet publish-c release-r ubuntu.16.04-x64
在scp转移到服务器之前进行构建。Travis上的构建和部署完成得很好,但当我在服务器上重新启动应用程序服务时,会出现如下错误

错误:未找到依赖项清单中指定的程序集--包:“microsoft.aspnetcore.antiforgery”,版本:“1.1.1”,路径:“lib/netstandard1.3/microsoft.aspnetcore.antiforgery.dll”

作为发布的一部分创建的
*.deps.json
文件包含以下行

"microsoft.aspnetcore.antiforgery/1.1.1": {
    "dependencies": {
      "Microsoft.AspNetCore.DataProtection": "1.1.1",
      "Microsoft.AspNetCore.Http.Abstractions": "1.1.1",
      "Microsoft.AspNetCore.Http.Extensions": "1.1.1",
      "Microsoft.AspNetCore.WebUtilities": "1.1.1",
      "Microsoft.Extensions.ObjectPool": "1.1.0",
      "NETStandard.Library": "1.6.1"
    },
    "compile": {
      "lib/netstandard1.3/Microsoft.AspNetCore.Antiforgery.dll": {}
    }
  },
  "microsoft.aspnetcore.authorization/1.1.1": {
    "dependencies": {
      "Microsoft.Extensions.Logging.Abstractions": "1.1.1",
      "Microsoft.Extensions.Options": "1.1.1",
      "NETStandard.Library": "1.6.1",
      "System.Security.Claims": "4.3.0"
    },
    "compile": {
      "lib/netstandard1.3/Microsoft.AspNetCore.Authorization.dll": {}
    }
},
这些“compile”属性是导致问题的原因,因为如果我手动删除
lib/netstandard1.3/Microsoft.AspNetCore.Antiforgery.dll
的compile属性,错误现在会变成:

错误:未找到依赖项清单中指定的程序集--包:“microsoft.aspnetcore.authorization”,版本:“1.1.1”,路径:“lib/netstandard1.3/microsoft.aspnetcore.authorization.dll”

为什么要在
*.deps.json
文件中创建这些编译属性?需要它们吗?如果是这样,为什么在我发布dotnet时没有创建
lib
目录?如果没有,我如何删除它们以便我的应用程序运行


谢谢。

所以,我重新阅读了一遍,注意到了一个我一直忽略的小细节。我一直在部署
netcoreapp1.1
的所有内容,而不仅仅是
netcoreapp1.1/publish
的内容。因此,我的服务器正在执行
netcoreapp1.1
中的.dll,而不是
netcoreapp1.1/publish
中的.dll。这解决了我所有的问题。

因此,我重新阅读了一遍,发现了一个我一直忽略的小细节。我已经部署了
netcoreapp1.1
的所有内容,而不仅仅是
netcoreapp1.1/publish
。因此,我的服务器正在执行
netcoreapp1.1
中的.dll,而不是
netcoreapp1.1/publish
中的.dll。这解决了我所有的问题。

谢谢你,真是个惊喜。谢谢你,真是个惊喜。