2016-10-03 2 views
1

here에서 "프레임 워크 종속 배포"및 "자체 포함 배포"의 두 가지 배포 유형이 있습니다.dotnet 프레임 워크로 asp.net 코어 "프레임 워크 종속 배포"

그러나 net451에서 "Framework-dependent deployment"를 얻는 방법은 설명하지 않았습니다.

net451에서 "프레임 워크 종속 배포"를 어떻게 얻을 수 있습니까?

{ 
    "webroot": "wwwroot", 
    "userSecretsId": "aspnet-AdsProject-110defb3-febe-4379-a8a3-0a8b20607a27", 
    "version": "1.0.0-*", 
    "compilationOptions": { 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0", 
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.1", 
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.Routing": "1.0.1", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1", 
    "Microsoft.EntityFrameworkCore.SqlServer.Design": { 
     "version": "1.0.1", 
     "type": "build" 
    }, 
    "Microsoft.EntityFrameworkCore.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0", 
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.1", 
    "Microsoft.Extensions.Caching.Abstractions": "1.0.0", 
    "Microsoft.Extensions.Caching.Memory": "1.0.0", 
    "Microsoft.Extensions.Configuration.Abstractions": "1.0.0", 
    "StackExchange.Redis": "1.1.605", 
    "Dapper": "1.50.2", 
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.Routing.Abstractions": "1.0.1", 
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0", 
    "Abot": "1.5.1.50" 
    }, 

    "tools": { 
    "BundlerMinifier.Core": "2.0.238", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final", 
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { 
     "version": "1.0.0-preview2-final", 
     "imports": [ 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "frameworks": { 
    "net451": { 
     "frameworkAssemblies": { 
     "System.Runtime.Serialization": "4.0.0.0", 
     "System.ServiceModel": "4.0.0.0" 
     } 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "**/*.cshtml", 
     "config.json", 
     "config.Development.json", 
     "web.config" 
    ], 
    "exclude": [ 
     "node_modules", 
     "bower_components", 
     "SqlScripts", 
     "PrivateJs", 
     "**.xproj", 
     "**.user", 
     "**.vspscc" 
    ] 
    }, 

    "scripts": { 
    "prepublish": [ "bower install", "dotnet bundle", "npm install" ], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

답변

1

짧은 대답 :

여기 내 project.json 당신이 이미 있습니다.

대상 지정 프레임 워크를 .NET Framework 4.5.1로 설정하고 응용 프로그램을 설치하기 전에 .NET Framework 재배포 가능 파일 (Dotnetfx.exe)을 사용하여 대상 컴퓨터에 대상 프레임 워크를 설치해야합니다. 즉, .NET Framework 응용 프로그램은 항상 프레임 워크 종속적입니다.

다른 측면에서

,자가 포함 된 배포 (SCD)는 단지 .NET 코어 프레임 워크에 관한 것으로, 응용 프로그램과 함께 프레임 워크를 구축 할 수 있습니다 : 독립적 인 배포를 들어

, 배포뿐만 아니라 귀하의 앱 및 제 3 자의 종속성은 귀하의 앱을 구축하는 .NET Core 버전입니다.

+0

프로젝트를 게시 할 때 dotnet은 .exe 파일도 생성합니다. 기사에서 말한 것처럼 .exe 파일은 SCD 모드로 생성됩니다. "SCD에는 실행 파일 (예 : app이라는 Windows 플랫폼의 app.exe)이 포함되어 있습니다."및 "FDD에는 명령 줄에서 dotnet 유틸리티를 사용하여 시작할 수있는 .dll 파일이 들어 있습니다." –

+0

원하지 않습니다. exe 파일. 프로젝트를 게시 할 때마다 프로덕션에서 응용 프로그램을 중지해야합니다. –

+0

.exe는 .NET Framework와 관련이 없으므로 대상 프레임 워크가 .NET Framework이므로 생성됩니다. 따라서 "old type"독립 실행 형 응용 프로그램 (https://blogs.msdn.microsoft.com/)을 읽으십시오. cesardelatorre/2016/06/28/running-net-core-apps-on-multiple-frameworks 및 target-framework-monikers-tfms-about-about/"게시 중 중지"와 관련하여 어셈블리를 변경하면 프로세스를 다시 시작해야합니다 ... 어쩌면 dotnet-watch를 사용하는 것일 수도 있지만 소스 코드의 변경 사항이 감지되면 지정된 응용 프로그램을 다시 시작합니다. – Set