每次使用新的.NET Core RC2模板构建项目时,我都不提供了一个可运行的。 EXE 文件。如果我按F5调试我的控制台应用程序,它可以通过
运行C:\Program Files\dotnet\dotnet.exe
应用。如果我使用
dotnet run
在文件夹中的命令,它运行正常。但是我认为没有.NET Core CLI工具就无法运行应用程序。
我的内容
bin\Debug\netcoreapp1.0\
文件夹如下所示:
正如您所见,没有。 EXE 文件可用。只是dll。
我忽略了什么吗?或者我的project.json文件有问题吗?
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-3002702"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
谢谢!
答案 0 :(得分:70)
.NET Core中实际上有两个应用程序模型:
便携式应用:受“DNX控制台应用”的启发,这些应用不会生成.exe
个文件,而是由.NET Core共享运行时执行(其中版本由Microsoft.NETCore.App
包定义,这要归功于其特殊的type: platform
属性。必须在计算机上安装相应的.NET Core运行时才能使用便携式应用程序。如果找不到确切的版本,则在运行dotnet run
时会抛出异常。
独立应用:独立应用与旧版.NET控制台应用非常相似,因为它们会生成.exe
个文件。 .NET Core运行时不必安装在计算机上,因为它直接嵌入了应用程序本身。
您目前正在使用第一个型号。要使用独立模型,您需要调整project.json
:
runtimes
部分,列出您的应用将定位的环境(例如win7-x64
或ubuntu.14.04-x64
)。您可以找到完整列表here。Microsoft.NETCore.App
依赖项。您可以使用此软件包替换它:"NETStandard.Library": "1.5.0-rc2-24027"
。以下是独立应用的示例:
{
"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": { }
}
}
答案 1 :(得分:13)
答案在documentation,现在有完整的步骤。
您可以为.NET Core应用程序创建两种类型的部署:
- 依赖于框架的部署
- 自包含部署
醇>
对于可运行的.EXE文件,应使用Self-contained deployment。
答案 2 :(得分:7)
要从.NET Core控制台应用程序创建可运行的应用程序,您可以使用dotnet tool。只需在项目目录中运行:
dotnet publish --runtime win7-x64
这将创建一个独立的应用程序(自包含部署;包括磁盘上至少消耗60MB的所有必需库)。当然,您也可以选择其他运行时,例如osx.10.11-x64
或ubuntu.16.04-x64
。
如果您使用默认配置(New Project -> Console App (.NET Core)
),则不会修改任何必要的配置文件。
答案 3 :(得分:4)
第1步:从"type": "platform",
部分
frameworks
第2步:在project.json中添加运行时段。注意每个部分都用逗号分隔。添加运行时。下面只是胜利10的一个例子。
"runtimes": {
"win10-x64": {}
}
步骤3:对项目执行dotnet restore命令。 (打开cmd,转到你的项目文件夹,无论src文件夹在哪里,运行dotnet restor)
第4步:dotnet pack
第4步:dotnet build -r win10-x64
- 或者只是构建。
步骤5:您可以注意到在debug / netcore / win10 /
下创建的.exe答案 4 :(得分:2)
在CreditCard
中尝试将您的应用ASP.NET Core
更改为type
,default
:
project.json