首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在.NET核心RC2中构建.exe文件

在.NET核心RC2中构建.exe文件
EN

Stack Overflow用户
提问于 2016-05-23 20:16:25
回答 5查看 30.8K关注 0票数 79

每次我使用新的.NET核心RC2模板构建一个项目时,我都是而不是,它提供了一个可运行的.EXE文件。如果我点击F5调试我的控制台应用程序,它在

代码语言:javascript
复制
C:\Program Files\dotnet\dotnet.exe 

应用程序。如果我使用

代码语言:javascript
复制
dotnet run 

命令,它也可以运行得很好。但是我认为没有.NET核心命令行工具是无法运行应用程序的。

我的内容

代码语言:javascript
复制
 bin\Debug\netcoreapp1.0\

文件夹如下所示:

如您所见,没有可用的.EXE文件。只有动态链接库。

我是不是忽略了什么?或者是我的project.json文件有问题?

代码语言:javascript
复制
{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-05-23 22:02:06

实际上,.NET核心中有两种应用模型:

  • Portable应用程序:受"DNX控制台应用程序“的启发,这些应用程序不生成.exe文件,而是由.NET核心共享运行时(其版本由Microsoft.NETCore.App包定义,这要归功于其特殊的type: platform属性)来执行。必须在计算机上安装相应的.NET核心运行时才能使用便携应用程序。如果找不到确切的版本,则在运行dotnet run.
  • Standalone应用程序时会抛出异常:独立应用程序与优秀的旧.NET控制台应用程序非常相似,因为它们会生成.exe文件。.NET核心运行时不必安装在计算机上,因为它直接嵌入到应用程序本身中。

您当前使用的是第一个模型。要使用独立模型,您需要调整project.json

  • 添加runtimes部分以列出您的应用程序将面向的环境(例如win7-x64ubuntu.14.04-x64)。您可以找到Microsoft.NETCore.App依赖项的完整列表。您可以将其替换为以下包:"NETStandard.Library": "1.5.0-rc2-24027".

下面是一个独立应用的例子:

代码语言:javascript
复制
{
  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true,
    "warningsAsErrors": true
  },

  "dependencies": {
    "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "NETStandard.Library": "1.5.0-rc2-24027"
  },

  "frameworks": {
    "net451": { },

    "netcoreapp1.0": {
      "dependencies": {
        "System.Net.Ping": "4.0.0-rc2-24027"
      },

      "imports": [
        "dnxcore50",
        "dotnet5.6",
        "portable-net451+win8"
      ]
    }
  },

  "runtimes": {
    "win7-x64": { }
  }
}
票数 72
EN

Stack Overflow用户

发布于 2016-10-30 16:12:27

答案就在documentation中,其中包含了完整的步骤。

您可以为.NET核心应用程序创建两种类型的部署:

  1. Framework-dependent deployment
  2. Self-contained deployment

对于可运行的.EXE文件,应使用。

票数 13
EN

Stack Overflow用户

发布于 2018-01-24 15:59:14

要从.NET核心控制台应用程序创建可运行的应用程序,可以使用dotnet tool。只需在您的项目目录中运行:

代码语言:javascript
复制
dotnet publish --runtime win7-x64

这将创建一个独立的应用程序(独立部署;包括磁盘上消耗至少60MB的所有必需的库)。当然,您也可以选择其他运行时,如osx.10.11-x64ubuntu.16.04-x64

如果您使用的是默认配置(New Project -> Console App (.NET Core)),则无需修改任何配置文件。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37390798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档