我想通过Travis CI部署一个dotnet核心web应用程序到Ubuntu VPS。我在使用dotnet restore && dotnet publish -c release -r ubuntu.16.04-x64
构建服务器之前。构建和部署在Travis上完成的很好,但是当我在服务器上重新启动应用程序服务时,出现如下所示的错误。'dotnet发布'错误引用依赖关系在不存在的lib目录中
Error: assembly specified in the dependencies manifest was not found -- package: 'microsoft.aspnetcore.antiforgery', version: '1.1.1', path: '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": {}
}
},
那些“编译”的属性是什么原因造成的问题,因为如果我手动删除编译属性为lib/netstandard1.3/Microsoft.AspNetCore.Antiforgery.dll
,错误现在变成:
Error: assembly specified in the dependencies manifest was not found -- package: 'microsoft.aspnetcore.authorization', version: '1.1.1', path: 'lib/netstandard1.3/Microsoft.AspNetCore.Authorization.dll'
为什么这些编译属性得到在*.deps.json
文件中创建?他们需要吗?如果是这样,为什么目录没有创建时,我dotnet publish
?如果没有,我如何删除它们以便我的应用程序运行?
谢谢。
谢谢你,真是一个惊喜。 – Kugel