0

ASP.NET 핵심 자습서 (https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model)를 따르고 있습니다. 나는 컨트롤러를 스카 폴딩 최대 섹션과 내 모델/DB 컨텍스트에서 컨트롤러를 만들려고 해요. 가이드에 설명 된대로 내가 지침을 따르 그러나,이 오류가 나타납니다.NET CLI를 사용하여 컨트롤러를 스캐 폴딩 할 수 있습니까?

enter image description here

나는 NuGet 패키지를 복원하고 새 프로젝트를 만드는 시도를하지만 난 여전히 같은 오류를 받고 있어요. .NET CLI를 사용하여 컨트롤러를 스캐 폴딩하는 방법이 있습니까? 전 한번도 본 적이 없으므로 직접 작성하는 법을 모르겠습니다.

감사합니다.

편집 : @ Prafull8495의 답변을 시도하고 지시 한대로 프로젝트 파일을 수정했습니다. 위의 오류가 더 이상 진열되어 있지만, 지금은 뭔가 다른 타격 해요 : ASP.NET 핵심 프로젝트를 기반으로 csproj 들어

enter image description here

답변

2

을, 당신은 타겟팅 (아래 참조가 존재 확인해야하지 않을 것이다 버전 것을 ASP.NET 코어 1.1.x의 버전)

<ItemGroup>  
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0-msbuild3-final" /> 
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" /> 
</ItemGroup> 

참고 타겟팅 프로젝트의 ASP.NET 코어 1.0.x의 버전)

<ItemGroup>  
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.0.0-msbuild3-final" /> 
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" /> 
</ItemGroup> 

(Microsoft.VisualStudio.Web.CodeGeneration.Tools 패키지는 두 경우 모두 동일하게 유지됩니다. 또한

아래의 패키지를 PackageReference으로 프로젝트에서 참조

  • Microsoft.VisualStudio.Web.CodeGenerators.Mvc
  • Microsoft.VisualStudio.Web.CodeGeneration.Tools되지 않았는지 확인
+0

감사합니다. 내가 말한대로 내 프로젝트 파일을 수정했지만 더 이상 오류가 발생하지는 않지만 지금은 다른 스택 추적을 얻고 있습니다 (업데이트 된 설명 참조). –

+0

@JamesKo 프로젝트에서 패키지 참조를 제공 할 수 있습니까? 나는이 문제의 원인이 될 수있는 프로젝트에서 직접 참조되는 몇 가지 오래된 패키지가 있다고 생각합니다. – Prafull8495

0

project.json을 사용하는 경우이 방법을 사용하십시오.

먼저 지금 당신이 dotnet restore 명령을 사용하여 패키지를 복원 할 수 있습니다 this-

"dependencies": { 
    "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" 
    } 
}, 
"tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { 
    "version": "1.0.0-preview2-final", 
    "imports": [ 
     "portable-net45+win8" 
    ] 
    } 
} 

처럼 project.json에 포함 할 필요가, 코드 생성기 패키지를 사용합니다. 이 완료되면 (공식 가이드 같이 또는 Visual Studio에서), 다음 명령을 사용하여 컨트롤러와 뷰를 스캐 폴딩 수 - 위의 명령은 루트 디렉토리에 이름 HelloController와 컨트롤러를 생성합니다

dotnet aspnet-codegenerator --project . controller -name HelloController -m Author -dc WebAPIDataContext 

, 뷰 폴더 아래의 Hello 폴더에있는 CRUD 옵션보기. 위의 예제 명령은 모델 및 EF를 사용하여 읽기 쓰기 작업으로 컨트롤러를 만드는 데 도움이됩니다. model 또는 dbcontext가 없으면 빈 제어기가 작성됩니다. 컨트롤러 매개 변수 뒤에 --help 명령 줄 스위치를 사용하면 컨트롤러 생성기에 대한 추가 옵션을 얻을 수 있습니다.