2016-06-15 2 views
1

.NET 코어를 사용하여 self contained 웹 응용 프로그램을 만들고 싶습니다. 나는 모든 버전의 Windows를 대상으로 할 내 project.json이있다 : 나는 dotnet publish --runtime win10-x64을 실행하면.NET 핵심 애플 리케이션 게시시 복수 런타임 타겟팅

"runtimes": { 
    "win10-x64": { }, 
    "win8-x64": { }, 
    "win7-x64": { } 
} 

내가 한 번에 게시 할 하나의 런타임을 지정할 수 있습니다. 그런 다음 내 바이너리 사본을 세 개 유지해야합니다.

3 가지 런타임 모두에 대해 내 앱을 게시하고 해당 폴더를 완전히 자체 포함 된 응용 프로그램으로 복사 할 수 있습니까?

+0

내게는 의미가 없습니다. 게시 명령을 실행하면 ** ONE ** 시스템에 게시됩니다. 이 시스템은 단일 OS 버전 만 실행합니다. 배포하려는 각 대상 시스템에 대해 게시 명령을 실행하기 만하면됩니다. – Tseng

+0

@Tseng RC1. 당신은 Windows를 대상으로 할 수 있습니다. RC2에서는 배포를 더욱 복잡하게 만드는 Windows 버전을 대상으로해야합니다. @svick은'win7-x64'를 대상으로 모든 아이디어를 지원합니다. –

+0

항상 한 대의 컴퓨터/OS에 배포하고 거기에 매개 변수로 추가하기 때문에 배포가 더 복잡해지지는 않습니다. dnx로 이전과 똑같이 할 수 있지만 포터블 앱을 만들어야합니다. 이것은 수동으로 런 타임을 설치해야합니다 (이것은 dnx 와도 마찬가지입니다). Windows 컴퓨터에서 – Tseng

답변

5

독립형 응용 프로그램을 만들 때 실행해야하는 모든 종속성이 포함되어 있습니다. 여기서 알 수 있듯이 다양한 버전의 Windows에 게시하는 유일한 차이점은 이전 버전의 경우 최신 버전에 기본 제공되는 일부 종속성을 번들 화해야한다는 것입니다.

즉, 지원되는 모든 Windows 버전에서 실행되는 자체 포함 된 응용 프로그램의 한 버전을 원할 경우 다음을 수행 할 수 있습니다. 가장 오래된 Windows 버전 (win7-x64) 만 사용하면됩니다.

Linux는 일반적으로 버전간에 이진 호환성을 유지하지 않으므로 동일한 접근 방식이 Linux에서는 작동하지 않습니다.

+0

Mono를 Linux에서 사용하면 확실히 작동합니다. 오래된 Linux 시스템에서 Mono를 빌드하면 모든 최신 버전의 Linux에서 실행됩니다 , RHEL, CentOS, Debian, SUSE, Ubuntu, 뭐든간에 - 각 배포판에 패키지를 게시 할 필요없이 .NET Core로이 작업을 수행하는 방법을 좋아합니다. – Cocowalla

관련 문제