2016-08-02 18 views
11

Stworzyłem rdzeń asp.net na rdzeniu .Net i planowałem opublikować go na serwerze Windows. Nie chcę niczego instalować na serwerze, więc chcę, aby aplikacja była samodzielna.Jak utworzyć samodzielną aplikację .Net core?

Wybrałem menu "Build-> Publish MyApp", a następnie stworzyłem metodę opartą na systemie plików. Wygenerował następujące pliki w folderze i skopiowałem go na serwer. Jak jednak uruchomić go na serwerze, który nie ma zainstalowanego jądra .Net?

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                            
+2

Chciałbym również poznać odpowiedź na to pytanie, ponieważ [oficjalna dokumentacja dotycząca samodzielnych wdrożeń] (https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index#self-contained -deployments-scd) nie potrafi tego odpowiednio wyjaśnić . –

+0

Czy skonfigurowałeś swoją aplikację, aby emitowała punkt wejścia (np. Aplikację konsolową)? –

+0

Myślę, że potrzebowałbyś pakietu Host Server Core Server na serwerze, ponieważ ASP.NET Core nie podąża za tradycyjnym potokiem IIS. AspNetCoreModule (zostanie zainstalowany wraz z pakietem) przekierowuje ruch HTTP/HTTPS z potoku IIS do procesu ASP.Net Core. Więcej informacji na ten temat: https://weblog.west-wind.com/posts/2016/Jun/06/Publishing-and-Running-ASPNET-Core-Applications-with-IIS –

Odpowiedz

0

Zobacz krok nr 3 instrukcji, które połączyłeś. Samodzielne aplikacje zależą od Microsoft.NETCore.App bez typu "Platforma". Porównaj https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore/project.json#L58-L61 vs https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore.Standalone/project.json#L68-L70

Również kroku # 4: Muszą listę środowisk wykonawczych do publikowania tak masz wszystkie potrzebne binaria naitve: https://github.com/aspnet/MusicStore/blob/dev/samples/MusicStore.Standalone/project.json#L80-L89

Powinno to pozwalają XCopy wdrożyć witrynę i uruchomić go jako aplikacja konsolowa (powinien być plik MyApp.exe dla systemu Windows), ale nie będzie można go uruchomić w usługach IIS bez modułu AspNetCoreModule (instalowanego za pośrednictwem pakietu Hosting).

7

NET rdzenia 1,0-mądre rozwiązanie:

1) Otwórz plik project.json i usunąć type = "platform" z zależnością netcoreapp1.0:

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

2) Określ czasy pracy, które chcesz kierować (.NET Core Runtime IDentifier catalog):

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

3) Uruchom dotnet restore w wierszu polecenia w projekcie lub rozwiązaniu poziom der.

4) Budowa:

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

5) publikacji:

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 

W folderze %ProjectFolder%\bin\Release\netcoreapp1.0\ będzie folder dla każdego wykonywania ty opublikowanej.

Kredyt trafia do Scott Hanselman.

Warto również czytać the official article about Application Deployment

+3

Szkoda, że ​​'project.json' jest przestarzałe. – ProfK

0

edytować plik .csproj i określ RuntimeIdentifier ramach grupy rzeczowych dla Windows, Ubuntu, osx.

<PropertyGroup> 
<TargetFramework>netcoreapp2.0</TargetFramework> 
<RuntimeIdentifiers>win10-x64;osx.10.10-x64;ubuntu.14.04-x64</RuntimeIdentifiers> 
    </PropertyGroup> 

Niż zapisać i opublikować aplikację na innym komputerze docelowym

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 

Aby uzyskać więcej szczegółów prosimy o zapoznanie się z bloga na temat tworzenia i wdrażania aplikacji .NET rdzenia na Windows/Linux/Mac http://www.spicy-dotnet.com/2017/10/creating-and-deploying-net-core.html

Powiązane problemy