.NET Core中实际上有2个应用程序模型:
便携式应用程序:受“ 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
)。您可以在此处找到完整列表。
- 删除
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": { }
}
}