c# - 是否可以编译一个独立的 ASP.NET Core Web 应用程序

标签 c# asp.net-core .net-core

我正在寻找一种方法来生成将启动 ASP.NET Core (.NET Core) 的独立 EXE。该项目将简单地从/wwwroot 提供一些静态文件。

我找到了few resources展示了如何将控制台应用程序制作成独立的 EXE。这些资源涉及修改似乎不存在的project.json(至少在初始模板上)。

我还没有看到任何允许我使用 ASP.NET Core 应用程序执行此操作的方法,这可能吗还是我遗漏了某些内容?

最佳答案

是的,确实如此。

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

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

dotnet new -t web

此时应创建 project.json 文件以及所有 Web 模板文件。

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

"type": "platform"

您还应该在“依赖项” block 后添加以下值

"runtimes": { 
    "win10-x64": {}
},

请注意,应更改“win10-x64”以匹配服务器将运行的计算机的体系结构。有关 .net core 支持的运行时 ID (RID) 的完整列表,请访问 https://learn.microsoft.com/en-us/dotnet/articles/core/rid-catalog

保存对 project.json 文件的更改并运行恢复命令:

dotnet restore

然后构建

dotnet build

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

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

关于c# - 是否可以编译一个独立的 ASP.NET Core Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41843287/

相关文章:

c# - 单击按钮更新 wpf 数据网格

c# - Windows 过滤 platform.net 包装器?

c# - ASP.NET Core:Docker恢复/构建未能包含项目中的第三方程序集

c# - Asp.net Core 导入Excel文件FileNotFoundException

c# - 处置 DbContext 创建的实体对象

c# - 为什么设置 MenuItem.InputGestureText 不会在我执行输入手势时激活 MenuItem?

c# - 为什么在ApiController中获取ActionName这么复杂?更简单的方法?

c# - 如何使属性在 POST 请求上必需,但在 PUT 请求上不需要

c# - .NET 框架 : Get Type from TypeInfo

c# - dotnetcore 控制台上的 Microsoft.Extensions.Logging 和 Serilog。在 RollingFile 接收器中包含范围信息