.NET核心中实际上有两个应用程序模型:
Portable apps:这些应用深受"DNX控制台应用"的启发,不会生成.exe
个文件,而是由用户执行.NET核心共享运行时(由于其特殊的type: platform
属性,其版本由Microsoft.NETCore.App
包定义).相应的.必须在计算机上安装NET Core runtime才能使用便携式应用程序.如果找不到确切的版本,则在运行dotnet run
时会引发异常.
Standalone apps:独立应用程序与优秀的旧.NET控制台应用程序非常相似,因为它们可以生成.exe
个文件.NET Core运行时不必安装在计算机上,因为它直接嵌入到应用程序本身.
您当前使用的是第一个型号.要使用独立模型,需要调整project.json
:
- 添加
runtimes
部分以列出您的应用程序将面向的环境(例如win7-x64
或ubuntu.14.04-x64
).你可以找到完整的 list 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": { }
}
}