Error:
An assembly specified in the application dependencies manifest ({projectName}.deps.json) was not found:
package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.2'
path: 'lib/netstandard2.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:
aspnetcore-store-2.0.5.xml
在我安装服务器的SDK的时候选择的是2.1.3版本,而我的开发环境是2.1.4版本,结果就出错了,弄了一阵子没搞好这个原因,同样就是这个原因,使得我从Git上pull下来的项目,虽然发布成功了,但是部署的话是不能够正常访问的,同时通过dotnet /xxx/xxx/xx.dll进行测试会一直出现这个错误。
最后通过干掉已有的版本,获得最新的版本,同样,我也在这里有个问题,貌似没得更新SDK版本的指令吧?我没有找到,抱歉,如有,请联系我,谢谢。
通过命令,干掉旧版的CLI,同时下载新版的SDK搞定,成功运行起来了。
rm -rf /usr/share/dotnet 删除旧版cli
下面是我的安装.Net Core的指令
1、配置dotnet产品Feed
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod] name=packages-microsoft-com-prod baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
2、安装SDK,注意版本!!!
sudo yum update sudo yum -y install libunwind libicu sudo yum install dotnet-sdk-2.1.4
至此环境便已经搭建好了。
三、部署过程
通过Git将码云或是Github上的项目Pull下来,最好现在服务器上指定好Git路径
比如我的建立一个专门放置项目的文件夹,其中对每一个需要Clone到本地的项目建立一个文件夹,可以让我思路比较清晰。或许,你有更好的方式,也可以使用。
通过建立完毕运行指令
git clone 你项目的SSH地址
我们可以利用其他dotnet的指令进行一些操作了
具体需要什么指令可以通过dotnet --help进行获得
查看下文件夹中的内容
可以通过指令dotnet run 将项目进行启动
此处会发现,我们不能干什么事情了,
只能按Ctrl + C让服务停下来,我们可以将当前这个程序作为后台程序运行,具体的操作就是Ctrl +Z将服务暂停
然后通过指令bg将其设为后台进程,如果想要进入已有的后台进程通过指令 fg
如果我们是只在命令行里操作的话,又看不到页面,又不能通过外网访问,
又想要确保网站是否真的运行成功了,我们可以通过指令来查看网站的首页信息
curl localhost:65758
将返回网站的html信息
具体更多的linux下http指令请参照Linux curl命令详解
我们可以发布了,通过指令dotnet build将项目再次编译一下
然后通过dotnet publish -o /xxxx/xxxx 将项目发布到指定文件夹
接下来,可以开始配置jexus了.