发布.net core程序碰到的问题

今天发布一个小的.net core程序,试了几次总是报错:
资产文件“objproject.assets.json”没有“.NETCoreApp,Version=v2.0”的目标。确保已运行还原,且“netcoreapp2.0”已包含在项目的 TargetFrameworks 中。

我寻思也没改啥,没辙,只能到网上搜搜,碰到这个问题的人还不少。
很多方法是说删掉什么什么,然后重新编译之类的。比如有说删除obj/bin的,有说删除FolderProfile.pubxml这个文件的。

我一开始没有意识到这是一个发布错误,以为是编译失败,于是根据自己的判断,觉得既然是版本不对,是不是我哪个包不匹配呢?因为我的电脑刚刚安装了.net core 2.1的sdk。
于是花了一些时间尝试在nuget中升级AspNetCore.All这个包,从2.0.9升级到2.1.6。
而在这过程中,又碰到升级不了的问题,是因为所依赖的CodeGeneration包需要先升级。

升级完成以后,编译成功,发布却还是提示这个错误。正向解决不了,于是还是尝试删除bin/obj等等。
删除几次以后发现,还是发布失败,这时我意识到这是一个发布问题,不是编译。

于是回到了一开始看到的解决方案,删除FolderProfile.pubxml这个文件,重新发布。
成了。

想了想原因,有可能是升级本机sdk以后,之前的某些文件是用2.0 sdk 发布的,与新的不兼容。
不过具体原因,其实看了一些帖子,也都是在讨论怎么做解决了问题,没有讨论是为什么会有这样的问题。。。

原文地址:https://www.cnblogs.com/mosakashaka/p/12608173.html