4

.NET 코어에 익숙하지 않고 .NET Core WebAPI 프로젝트 인 MyWebApp,
도 있습니다 .Net Core Class Library 프로젝트 MyLib 내가 추가가 마이그레이션을 사용하려고하면 EntityFrameworkCore

를 사용하여, 나는
가 지정한 deps.json는 [... \ MyWebApp로 \ 빈 \ 디버그 \ netcoreapp1.1 \ MyWebApp.deps.json] 존재하지 않는 오류를 얻을 폴더를 검사

, 나는 [... \ MyWebApp로 \ 빈 \ 디버그 \ netcoreapp1.1 win10-64 \ MyWebApp.deps.json \]

에서이 파일을 발견

하지만이 문제를 해결하기 위해해야 ​​할 일을 실제로 파악할 수는 없습니다.

myWebApi의 project.json :

{ 
    "dependencies": { 
    "ShopManager": "1.0.0-*", 
    "Microsoft.AspNetCore.StaticFiles": "1.1.0", 
    "Microsoft.AspNetCore.Mvc": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", 
    "Microsoft.Extensions.Configuration.Json": "1.1.0", 
    "Microsoft.Extensions.Logging": "1.1.0", 
    "Microsoft.Extensions.Logging.Console": "1.1.0", 
    "Microsoft.Extensions.Logging.Debug": "1.1.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", 
    "Microsoft.NETCore.App": "1.1.0" 
    }, 

    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 
    "runtimes": { 
    "win10-x64": "" 
    }, 
    "frameworks": { 
    "netcoreapp1.1": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

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

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 
+0

감사합니다. –

+0

'project.json'에서'runtimes' 섹션을 제거하십시오. 다른 런타임을 사용하지 않는 즉시 쓸모가 없습니다. 또한,'Microsoft.EntityFrameworkCore. *'패키지는 어디에 있으며 왜 의존성 목록에 나타나지 않습니까? – Dmitry

+0

EFCore. *는 클래스 lib에 있습니다. RT 섹션을 제거하면 .NetCore.App 종속성을 요구하는 오류가 발생합니다. –

답변

5

runtimes 섹션 project.json에서 의심스러운 보인다. 하나의 런타임에만 빌드하면 즉시 사용할 수 있습니다.

제거하고 종속성을 "Microsoft.NETCore.App":"1.1.0"에서 "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" }으로 다시 작성하십시오.

이렇게하면 응용 프로그램 배포 모델이 "자체 포함"(프레임 워크 없이도 특정 플랫폼에서 실행될 수 있음)에서 "프레임 워크 종속적"(프레임 워크가 설치된 모든 플랫폼에서 실행될 수 있음)으로 변경됩니다. 세부 사항 are here.

+0

여러 플랫폼을 타겟팅해야하는 경우 어떻게해야합니까? –

+0

이미 여러 플랫폼을 타겟팅합니다. .NET 코어를 사용할 수있는 모든 플랫폼을 '런타임'없이 사용할 수 있습니다.런타임시 .NET Framework를 설치하지 않고도 실행할 수있는 .NET Core가 포함 된 응용 프로그램의 "자체 포함"배포를 원할 때 필요합니다. 그리고 만약 당신이 이것을 원한다면 ... 당신은 안정적인 툴링을 기다려야합니다 (현재 당신은 미리보기 4를 사용하고 있습니다). – Dmitry

1

내가 비주얼 스튜디오 2017과이 문제를 가지고 있었다, 나는 스캐 폴딩이 아니었다

MCD \ 디버그 \의 netcoreapp1.0 \ 빈에 빈 \ 디버그 \의 netcoreapp1.0에서 DLL의의를 포함한 모든 파일을 복사 bin 폴더에 파일을 복사 할 때까지 제대로 작동합니다. MCD 폴더가 무엇인지 모르지만 어떤 이유로 스 캐 폴딩 프로세스가이 폴더를 찾습니다.

0

오늘 회의 워크샵에서이 문제가 발생했습니다. dotnet ef database update -v을 실행하여 자세한 출력을 얻고 신중하게 사용 된 경로를 검사 한 후 Mac에서 문제를 일으키는 환경 변수가 설정되었음을 발견했습니다.

환경 내에 PROJECTDIR이있는 경우 dotnet 명령을 사용하면 경로를 확인하는 데이 방법을 사용할 수 있으며, 예상치 못한 방식으로 경로를 확인하는 경우가 많습니다. 따라서 .Net 핵심 작업을 수행하는 셸/환경에서이 환경 변수를 제거하십시오.