C# 是否可以编译一个自包含的ASP.NET核心Web应用程序

C# 是否可以编译一个自包含的ASP.NET核心Web应用程序,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我正在寻找一种方法来生成一个自包含的EXE,它将启动ASP.NET Core(.NET Core)。该项目只需从/wwwroot提供一些静态文件 我发现了一个演示如何将控制台应用程序转换为自包含的EXE的示例。这些资源涉及修改似乎不存在的project.json(至少在初始模板上) 我没有看到任何允许我使用ASP.NET核心应用程序执行此操作的应用程序,这是可能的还是我遗漏了什么?是的,是的 但是,如果在项目的文件夹中找不到project.json文件,则说明您在设置该文件时出错 为项目创建新文

我正在寻找一种方法来生成一个自包含的EXE,它将启动ASP.NET Core(.NET Core)。该项目只需从/wwwroot提供一些静态文件

我发现了一个演示如何将控制台应用程序转换为自包含的EXE的示例。这些资源涉及修改似乎不存在的project.json(至少在初始模板上)

我没有看到任何允许我使用ASP.NET核心应用程序执行此操作的应用程序,这是可能的还是我遗漏了什么?

是的,是的

但是,如果在项目的文件夹中找不到project.json文件,则说明您在设置该文件时出错

为项目创建新文件夹后,在控制台中导航到该文件夹,并使用以下命令创建新的web项目:

dotnet new -t web
此时应创建project.json文件以及所有web模板文件

打开project.json文件并删除(或注释掉)该行

您还应该在“dependencies”块之后添加以下值

请注意,应更改“win10-x64”以匹配服务器将运行的计算机的体系结构。有关.net核心支持的运行时ID(RID)的完整列表,请访问

将更改保存到project.json文件并运行restore命令:

dotnet restore
然后建造

dotnet build
您可以在bin/Debug/netcoreapp[version]/[RID]中找到*.exe文件


请注意,如果您从该文件夹运行此可执行文件,则可执行文件将找不到您的模型、视图和控制器,并且您的页面将为空。

我似乎一直在使用较旧版本的dotnet core(卸载并安装最新版本+dotnet new-t web允许project.json显示)。Visual Studio 2017 RC仍在制作项目,但没有project.json,也没有csproj文件可添加到现有解决方案中。在dotnet core的预览3上使用dotnet migrate修复了上述问题。现在正在确认独立版本。看来preview 3的dotnet new-t Web没有生成project.json文件(如VS2017RC)。是否有其他方法通过csproj/xml生成EXE?以上答案对于当前版本的.NET Core CLI(2017年1月)是正确的。VS2017 RC附带了一个使用新MS build/XML系统的alpha版本。太糟糕了
project.json
已被弃用。
dotnet restore
dotnet build