ASP.NET Core 1.1无法发布应用程序。

6
我想在Linux服务器上使用简单的"dotnet publish"命令来编译我的Web应用程序,但它告诉我我的"project.json"文件丢失。
在回答之前,请注意最近的一些更改。请纠正我如果我错了,因为我的Web应用程序是一个较高版本,不需要"project.json"文件:
ASP.NET Core 1.1和.NET Core 1.1。我知道在2016年11月,他们用"project.csproj"取代了"project.json",所以在Visual Studio 2017中创建的项目将不再生成此文件。
以下是我创建Web应用程序项目的方式: - Visual Studio 2017 RC - ASP.NET Core 1.1(Web应用程序) - .NET Core 1.1
我只展示了我如何创建项目,因为它向人们展示了我不需要将其迁移到1.1,因为该项目从未作为1.0项目开始。
在本地,我的项目运行良好,它可以恢复,发布和运行。它做到了所有"dotnet"命令应该做的事情。
更具体的问题是:在带有最新版本的"dotnet --version"的Linux服务器上运行"dotnet publish"会出现错误,说需要"project.json"。为什么.NET Core的最新版本(1.1)需要"project.json",当明显已经弃用它并应该寻找".csproj"呢?
1个回答

5
在这个交叉期,project.json正在被.csproj替换,因此SDK有两个版本。对于v1.1,仍然有基于project.json的SDK版本,您必须在Linux服务器上安装它。
很快这种混乱就会消失(大约一周后发布VS2017),当工具转到RTM时。从那时起,所有内容都将基于.csprojproject.json将完全弃用。

啊,版本之间的过渡期。说实话,乍一看,project.json文件比project.csproj更易读和有组织,但这只是我的个人意见。感谢提供信息。 - Ollie Cee
1
正当性在于,所有的.NET共享单一的构建过程和工具带来了许多好处,包括降低了复杂性、表面积和重复。很遗憾project.json不能成为胜利者(我和大多数我谈过话的人都同意JSON > XML),但据我所知,在MSBuild方面有太多的惯性,以至于它无法在合理的时间范围内被替换或重建。 - Polynomial

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接