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

时间:2017-01-25 04:16:38

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

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

我找到了few resources,其中显示了如何将控制台应用程序转换为自包含的EXE。这些资源涉及修改似乎不存在的project.json(至少在初始模板上)。

我没有看到任何允许我使用ASP.NET Core应用程序执行此操作的内容,这是可能的还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

是的,是的。

但是,如果您无法在项目的文件夹中找到project.json文件,则在设置时会出错。

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

dotnet new -t web

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

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

"type": "platform"

您还应该在"依赖关系"之后添加以下值。块

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

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

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

dotnet restore

然后构建

dotnet build

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

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