나는 RC2에 Asp.Net 코어 RC1 프로젝트를 마이그레이션하려고이 다음 한 문서를 또한 따랐다 지침 .NET CLI에 DNX 마이그레이션을.
시도 할 때 다음 오류가 발생합니다 dotnet run
.
대상 런타임 중 하나와 호환되는 ‘.NETCoreAPP, Version = v1.0’프레임 워크의 런타임 대상을 찾을 수 없습니다 : ‘win10-x64, win81-x64, win8-x64, win7-x64’. 가능한 원인들:
- 프로젝트가 복원되지 않았거나 복원에 실패했습니다. ‘dotnet restore’를 실행하십시오.
- 이 프로젝트는 ‘런타임’에 ‘win10-x64, win81-x64, win7-x64’중 하나를 나열하지 않습니다.
나는 달리고 dotnet restore
성공적으로 완료 된 것 같습니다.
모든 관련 패키지를 RC2로 업데이트했습니다.
답변
오류 메시지가 말한 것과 정확히 일치해야합니다. RC1에서 마이그레이션 할 때 파일에 runtimes
섹션 을 지정해야한다는 것을 알지 못했습니다 project.json
.
내 project.json
에서 다음 섹션을 추가했습니다.
"runtimes": {
"win10-x64": { }
}
그리고 나는 가기 좋았다.
2017 년 2 월 27 일 업데이트
Visual Studio 2017 RC의 새 프로젝트 템플릿은 더 이상 앱을 배포하도록 선택하면 더 이상 런타임을 지정 project.json
하거나 으로 지정할 필요가 없습니다 .csproj
.Framework Dependent Deployment
(FDD)를.
그러나 Self-contained Deployment
(SCD)를 사용하여 앱을 배포하기로 선택한 경우 사전 에 앱을 실행하려는 모든 런타임을 지정해야 합니다..csproj
파일 합니다.
다음은 .csproj
SCD 배포 방법을 사용하는 앱 파일 의 예입니다 .
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.0</TargetFramework>
<VersionPrefix>1.0.0</VersionPrefix>
<DebugType>Portable</DebugType>
<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
</ItemGroup>
</Project>
두 가지 유형의 배포 옵션과 장점 및 단점에 대한 자세한 설명이 포함 된 자세한 내용 은 이 링크 를 참조하십시오 .
답변
VS2015 핵심 템플릿을 1.0.1로 업데이트 한 후이 오류가 발생했습니다. netstandard 1.4
각 런타임을 지정하지 않으려는 경우 대상 PCL이 있기 때문에 종속성 마크 업을 다음 Microsoft.NETCore.App
과 같이 변경하십시오 .
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
답변
project.json에서 이것을 변경했습니다 (추가 유형).
//"Microsoft.NETCore.App": "1.1.0",
"Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" },
이제 다시 만들 수 있습니다 🙂
업데이트 : 이제 웹 사이트를 다시 만들 수는 있지만 “실행”할 수는 없습니다.
런타임과 SDK도 있는지 확인해야합니다.
*) Visual Studio 도구에는 .NET Core 1.0.1이 포함되어 있습니다. .NET Core 1.1 지원을 추가하려면 .NET Core 1.1 런타임도 설치해야합니다.
https://www.microsoft.com/net/download/core#/current
답변
Visual Studio 2015에서 엄청나게 깨진 NuGet Package Manager를 사용하여 project.json 종속성을 업데이트했기 때문에이 오류가 발생했습니다. 그것은 이것을 돌렸다 :
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
}
}
}
이것으로 :
"dependencies": {
"Microsoft.NETCore.App": "1.1.0"
},
"frameworks": {
"netcoreapp1.0": {}
}
안녕, 플랫폼 정의!
답변
이 두 링크를 읽으면 :
먼저 https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/using-with-xplat-cli
과
둘째, https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog
project.json의 dependencies 루트 요소에서 다음 스 니펫을 사용하여 완전히 이식 가능한 버전을 빌드 할 수 있음을 알 수 있습니다. CORE 레벨 런타임이기 때문에 런타임을 지정할 필요가 없습니다. 이는 플랫폼과 무관하거나 “프레임 워크에 의존적”이어야합니다.
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
또는 다음과 같이 type : platform 요소를 제거하여 여러 대상 플랫폼 ( “자체 포함 된 응용 프로그램”)을 구축 할 수 있습니다.
이것을 project.json의 dependencies 루트 요소에 추가하십시오
"Microsoft.NETCore.App": {
"version": "1.0.1"
}
이것을 새로운 루트 레벨 요소로 추가하십시오
"runtimes": {
"win10-x64": {}, /* one or more RIDs */
"osx.10.10-x64": {}
},
여러 대상을 지정하려면 “.NET RID (핵심 런타임 ID)”라고하는 플랫폼 이름을 제공해야합니다. 이러한 목록은 위의 두 번째 링크에서 찾을 수 있습니다. 여기에는 다양한 Windows, Linux 및 OS X가 포함됩니다.
다양한 배포 옵션에 대한 개요를 보려면이 페이지를 읽어보십시오.
https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index
위의 링크에서 :
.NET Core 응용 프로그램에 대해 두 가지 유형의 배포를 만들 수 있습니다.
프레임 워크 종속 배포
이름에서 알 수 있듯이 FDD (Framework-Deployment Deployment)는 대상 시스템에 존재하는 공유 시스템 전체 버전의 .NET Core를 사용합니다. .NET Core가 이미 있으므로 .NET Core 설치간에 앱을 이식 할 수도 있습니다. 앱에는 자체 코드와 .NET Core 라이브러리 외부의 타사 종속성 만 포함되어 있습니다. FDD에는 명령 줄에서 dotnet 유틸리티를 사용하여 시작할 수있는 .dll 파일이 포함되어 있습니다. 예를 들어 dotnet app.dll은 app이라는 응용 프로그램을 실행합니다.
독립적 인 배포
FDD와 달리 SCD (self-contained deployment)는 대상 시스템에 존재하는 공유 구성 요소에 의존하지 않습니다. .NET Core 라이브러리 및 .NET Core 런타임을 포함한 모든 구성 요소는 응용 프로그램에 포함되어 있으며 다른 .NET Core 응용 프로그램과 분리되어 있습니다. SCD에는 플랫폼 별 .NET Core 호스트의 이름이 바뀐 버전 인 실행 파일 (예 : app이라는 응용 프로그램의 경우 Windows 플랫폼의 app.exe)과 .dll 파일 (예 : app.dll)이 포함됩니다. 실제 응용 프로그램.
답변
필자의 경우 모든 nuget 패키지를 최신 버전으로 업데이트했으며 nuget에서 ‘Microsoft.NETCore.App’패키지 참조를 다음과 같이 변경했습니다.
"Microsoft.NETCore.App": "1.1.0"
나는 그것을 다음과 같은 형식으로 바꾸었고 모든 것이 잘 작동했습니다.
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
}
안녕 내 인생의 3 시간 ….
답변
dotnet new를 실행하고 출력 프로젝트 json을 보면 모니 커가 변경되었음을 알 수 있습니다.
다음과 같이 project.json을 변경하십시오.
"dependencies": {},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
},
"imports": "dnxcore50"
}
}