Asp.net core 如何创建自包含的.Net核心应用程序?
我在.net core上创建了一个asp.net core,并计划在Windows服务器上发布它。我不想在服务器上安装任何东西,所以我希望应用程序是自包含的 我选择了菜单“Build->publishmyapp”,然后创建了基于文件系统的方法。它在文件夹中生成了以下文件,我将其复制到服务器。但是,如何在没有安装.Net core的服务器上运行它Asp.net core 如何创建自包含的.Net核心应用程序?,asp.net-core,.net-core,Asp.net Core,.net Core,我在.net core上创建了一个asp.net core,并计划在Windows服务器上发布它。我不想在服务器上安装任何东西,所以我希望应用程序是自包含的 我选择了菜单“Build->publishmyapp”,然后创建了基于文件系统的方法。它在文件夹中生成了以下文件,我将其复制到服务器。但是,如何在没有安装.Net core的服务器上运行它 Name
Name
----
refs
runtimes
appsettings.json
MyService.deps.json
MyService.dll
MyService.pdb
MyService.runtimeconfig.json
Microsoft.ApplicationInsights.AspNetCore.dll
Microsoft.ApplicationInsights.dll
Microsoft.AspNetCore.Antiforgery.dll
Microsoft.AspNetCore.Authorization.dll
Microsoft.AspNetCore.Cors.dll
Microsoft.AspNetCore.Cryptography.Internal.dll
Microsoft.AspNetCore.DataProtection.Abstractions.dll
Microsoft.AspNetCore.DataProtection.dll
Microsoft.AspNetCore.Diagnostics.Abstractions.dll
Microsoft.AspNetCore.Hosting.Abstractions.dll
Microsoft.AspNetCore.Hosting.dll
Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
Microsoft.AspNetCore.Html.Abstractions.dll
Microsoft.AspNetCore.Http.Abstractions.dll
Microsoft.AspNetCore.Http.dll
Microsoft.AspNetCore.Http.Extensions.dll
Microsoft.AspNetCore.Http.Features.dll
Microsoft.AspNetCore.HttpOverrides.dll
Microsoft.AspNetCore.JsonPatch.dll
Microsoft.AspNetCore.Localization.dll
Microsoft.AspNetCore.Mvc.Abstractions.dll
Microsoft.AspNetCore.Mvc.ApiExplorer.dll
Microsoft.AspNetCore.Mvc.Core.dll
Microsoft.AspNetCore.Mvc.Cors.dll
Microsoft.AspNetCore.Mvc.DataAnnotations.dll
Microsoft.AspNetCore.Mvc.dll
Microsoft.AspNetCore.Mvc.Formatters.Json.dll
Microsoft.AspNetCore.Mvc.Localization.dll
Microsoft.AspNetCore.Mvc.Razor.dll
Microsoft.AspNetCore.Mvc.Razor.Host.dll
Microsoft.AspNetCore.Mvc.TagHelpers.dll
Microsoft.AspNetCore.Mvc.ViewFeatures.dll
Microsoft.AspNetCore.Razor.dll
Microsoft.AspNetCore.Razor.Runtime.dll
Microsoft.AspNetCore.Routing.Abstractions.dll
Microsoft.AspNetCore.Routing.dll
Microsoft.AspNetCore.Server.IISIntegration.dll
Microsoft.AspNetCore.Server.Kestrel.dll
Microsoft.AspNetCore.WebUtilities.dll
Microsoft.DotNet.InternalAbstractions.dll
Microsoft.EntityFrameworkCore.dll
Microsoft.EntityFrameworkCore.Relational.dll
Microsoft.EntityFrameworkCore.SqlServer.dll
Microsoft.Extensions.Caching.Abstractions.dll
Microsoft.Extensions.Caching.Memory.dll
Microsoft.Extensions.Configuration.Abstractions.dll
Microsoft.Extensions.Configuration.Binder.dll
Microsoft.Extensions.Configuration.dll
Microsoft.Extensions.Configuration.EnvironmentVariables.dll
Microsoft.Extensions.Configuration.FileExtensions.dll
Microsoft.Extensions.Configuration.Json.dll
Microsoft.Extensions.DependencyInjection.Abstractions.dll
Microsoft.Extensions.DependencyInjection.dll
Microsoft.Extensions.DependencyModel.dll
Microsoft.Extensions.DiagnosticAdapter.dll
Microsoft.Extensions.FileProviders.Abstractions.dll
Microsoft.Extensions.FileProviders.Composite.dll
Microsoft.Extensions.FileProviders.Physical.dll
Microsoft.Extensions.FileSystemGlobbing.dll
Microsoft.Extensions.Globalization.CultureInfoCache.dll
Microsoft.Extensions.Localization.Abstractions.dll
Microsoft.Extensions.Localization.dll
Microsoft.Extensions.Logging.Abstractions.dll
Microsoft.Extensions.Logging.Console.dll
Microsoft.Extensions.Logging.Debug.dll
Microsoft.Extensions.Logging.dll
Microsoft.Extensions.Logging.Filter.dll
Microsoft.Extensions.Logging.TraceSource.dll
Microsoft.Extensions.ObjectPool.dll
Microsoft.Extensions.Options.ConfigurationExtensions.dll
Microsoft.Extensions.Options.dll
Microsoft.Extensions.PlatformAbstractions.dll
Microsoft.Extensions.Primitives.dll
Microsoft.Extensions.WebEncoders.dll
Microsoft.Net.Http.Headers.dll
Newtonsoft.Json.dll
NLog.config
NLog.dll
NLog.Extensions.Logging.dll
Remotion.Linq.dll
System.Collections.NonGeneric.dll
System.Collections.Specialized.dll
System.ComponentModel.Primitives.dll
System.ComponentModel.TypeConverter.dll
System.Data.Common.dll
System.Diagnostics.Contracts.dll
System.Interactive.Async.dll
System.Net.WebSockets.dll
System.Runtime.Serialization.Primitives.dll
System.Text.Encodings.Web.dll
web.config
请参阅链接说明中的步骤3。独立应用程序依赖于Microsoft.NETCore.App,但不支持“平台”类型。比较
vs
第4步:他们需要一个要发布的运行时列表,以便获得所有正确的naitve二进制文件:
这应该允许您xcopy部署站点并将其作为控制台应用程序运行(Windows应该有MyApp.exe),但如果没有AspNetCoreModule(通过主机包安装),您将无法在IIS中运行它。.NET Core 1.0明智的解决方案: 1) 打开
project.json
文件并从netcoreapp1.0
的依赖项中删除type=“platform”
:
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1"
}
}
}
}
2) 指定要以()为目标的运行时:
3) 在项目或解决方案文件夹级别的命令提示符下运行dotnet restore
4) 建造:
5) 出版:
在文件夹%ProjectFolder%\bin\Release\netcoreapp1.0\
中,将为您发布的每个运行时创建一个文件夹
功劳归于我
还值得一读编辑.csproj文件并在windows、ubuntu和osx的属性组下指定RuntimeIdentifier
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifiers>win10-x64;osx.10.10-x64;ubuntu.14.04-x64</RuntimeIdentifiers>
</PropertyGroup>
有关更多详细信息,请阅读关于在Windows/Linux/Mac上创建和部署.Net核心应用程序的博客
我也想知道这个问题的答案,因为未能充分解释。您是否将应用程序配置为发出入口点(即控制台应用程序)?我认为您需要在服务器上安装ASP.NET Core服务器托管捆绑包,因为ASP.NET Core不遵循传统的IIS管道。AspNetCoreModule(将与捆绑包一起安装)将HTTP/HTTPS通信从IIS管道重定向到ASP.Net核心进程。关于这方面的更多信息:这是一篇很好的文章,可以帮助糟糕的
项目。json
已被弃用。
dotnet build -r win7-x64
dotnet build -r osx.10.10-x64
dotnet build -r ubuntu.14.04-x64
dotnet publish -c release -r win7-x64
dotnet publish -c release -r osx.10.10-x64
dotnet publish -c release -r ubuntu.14.04-x64
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifiers>win10-x64;osx.10.10-x64;ubuntu.14.04-x64</RuntimeIdentifiers>
</PropertyGroup>
dotnet publish -c release -r win10-x64
dotnet publish -c release -r osx.10.10-x64
dotnet publish -c release -r ubuntu.14.04-x64