【问题标题】:How to create a self contained .Net core application?如何创建一个自包含的 .Net 核心应用程序?
【发布时间】:2016-08-02 20:18:19
【问题描述】:

我在 .Net core 上创建了一个 asp.net core,并计划在 Windows 服务器上发布它。我不想在服务器上安装任何东西,所以我希望应用程序是自包含的。

我选择了菜单“Build-> Publish MyApp”,然后创建了基于文件系统的方法。它在文件夹中生成了以下文件,我将其复制到服务器。但是,如何在没有安装.Net core的服务器上运行呢?

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                                                                                                             

【问题讨论】:

标签: asp.net-core .net-core


【解决方案1】:

.NET Core 1.0 解决方案:

1) 打开project.json文件并从netcoreapp1.0的依赖中移除type = "platform"

"frameworks": {
  "netcoreapp1.0": {
    "dependencies": {
      "Microsoft.NETCore.App": {
        "version": "1.0.1"
      }
    }
  } 
}

2) 指定您要定位的运行时 (.NET Core Runtime IDentifier catalog):

"runtimes": {
     "win7-x64": {},
     "osx.10.10-x64": {},
     "ubuntu.14.04-x64": {}
}

3) 在项目或解决方案文件夹级别的命令提示符中运行dotnet restore

4) 构建:

dotnet build -r win7-x64
dotnet build -r osx.10.10-x64
dotnet build -r ubuntu.14.04-x64

5) 发布:

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

%ProjectFolder%\bin\Release\netcoreapp1.0\ 文件夹中将是您发布的每个运行时的文件夹。

归功于Scott Hanselman

值得一读the official article about Application Deployment

【讨论】:

  • 太糟糕了 project.json 已被弃用。
【解决方案2】:

请参阅您链接的说明中的第 3 步。独立应用程序依赖于没有“平台”类型的 Microsoft.NETCore.App。比较https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore/project.json#L58-L61https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore.Standalone/project.json#L68-L70

还有第 4 步:他们需要一个要发布的运行时列表,以便您获得所有正确的原始二进制文件:https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore.Standalone/project.json#L80-L89

这应该让您可以 xcopy 部署站点并将其作为控制台应用程序运行(应该有一个适用于 Windows 的 MyApp.exe),但是如果没有 AspNetCoreModule(通过 Hosting 捆绑包安装),您将无法在 IIS 中运行它)。

【讨论】:

    【解决方案3】:

    编辑 .csproj 文件并在 windows,ubuntu,osx 的属性组下指定 RuntimeIdentifier。

    <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
    

    有关更多详细信息,请阅读有关在 Windows/Linux/Mac 上创建和部署 .Net Core 应用程序的博客 http://www.spicy-dotnet.com/2017/10/creating-and-deploying-net-core.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2020-02-15
      相关资源
      最近更新 更多