2012-11-21 4 views
3

Visual Studio Entity Framework 5.0 포함 파일 (EF.Utility.CS.ttinclude)에있는 클래스를 표준 C# 클래스 집합으로 변환했습니다. 제가 왜 그렇게했는지는 중요하지 않습니다. 그렇게하기에 합당한 이유가 있으며, 내가 성취하고자하는 것을 성취 할 다른 방법이 없다고 말하는 것으로 충분합니다.ef.utility.cs.ttinclude를 클래스로 변환


Error 1 Running transformation: System.IO.FileNotFoundException: Could not load file or assembly 'EFUtilities_5_0_DeConstruct, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 
File name: 'EFUtilities_5_0_DeConstruct, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 
    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) 
    at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
    at System.Reflection.Assembly.Load(String assemblyString) 
    at System.UnitySerializationHolder.GetRealObject(StreamingContext context) 
    at System.IServiceProvider.GetService(Type serviceType) 
    at EFUtilities_5_0_DeConstruct.EntityFrameworkTemplateFileManager.Create(Object textTransformation) in c:\Users\Sam\Documents\Visual Studio 2012\Projects\EFExplorer_5\EFUtilities_5_0_DeConstruct\EntityFrameworkTemplateFileManager.cs:line 29 
    at Microsoft.VisualStudio.TextTemplating6F3E7F749A9B7F1589040546E2B00865752CC91ED5490722E3718CB7A5DDD503FF97964710FBB3EBF135630FF50F8F2A8EA8FA5AA531EC2449158E3D60FD019D.GeneratedTextTransformation.TransformText() 

이 오류는 비주얼 스튜디오 2012에서 발생 제공된 T4 템플릿 (EF의 표준 DbContext를 생성하는 하나)을 통해 클래스를 테스트하기 위해 시도 할 때, 나는 다음과 같은 오류를 수신하고 프리미엄 Entity Framework 데이터 프로젝트가 추가되고 데이터베이스에서 빌드 된 모델이 생성 된 후 프리미엄이 생성되었을 때 프리미엄이 생성되었습니다 (기본 키, 몇 개의 테스트 열이있는 데이터베이스가 하나의 테이블로 구성됨). 모든 T4 메뉴 옵션을 변환하십시오 (Model1.tt 파일을 선택하고 "사용자 정의 도구 실행"을 선택하는 경우에도 발생합니다). Model1.tt (이름이 기본 할당 됨) 파일은 실패한 파일이고 Model1.Context.tt 파일은 정상적으로 실행됩니다. 두 템플릿 모두 결과 클래스가 저장된 DeConstruct 어셈블리에 대한 추가 참조와 함께 EF.Utility.CS.ttinclude 파일 (실제로 잘라내어 붙여 넣기)과 동일한 어셈블리 및 가져 오기 절이 포함되도록 수정되었습니다. 이 솔루션은 "Debug"의 표준 디버그 위치, "Release"의 프로덕션 디렉토리 (C : \ T4 \ EF_5_0 \ Assembiles)로 컴파일됩니다. 두 위치를 가리 키도록 Model1.tt 파일을 설정하려고 시도하고 동일한 오류가 발생합니다.

잘못된 줄은 다음과 같습니다. DTE dte = (DTE) hostServiceProvider.GetService (typeof (DTE));

envDTE 어셈블리가 클래스의 참조 및 절에 추가됩니다.

이 모든 것에 대한 비판은 내가 EF 4.3.1 EF.Utility.CS.ttinclude 파일과 Visual Studio 2010의 해당 4.3 DbContext 생성기 파일을 사용하여 성공적으로 수행했기 때문입니다. 기본 클래스 등 그래서 ... 왜 내가 VS2012 단지 에서이 오류를 볼 수있는 모든 단서와 EF 5.0과 함께? 내가 시도하지 않은 한 가지는 EF 5.0을 VS2010 환경으로 가져 오는 것입니다. Kinda는 작업 환경을 오염시키고 싶지 않았습니다.

답변

1

답을 찾을 수 :.

는 ("EnvDTE"으로 표시 "envdte"또는 VS2012에 지역 사람으로 보여줍니다 GAC에서 하나를 선택 EnvDTE의 버전 문제가되지 않습니다 추가 하나를 프로젝트에 추가 한 다음 참조 목록에서 어셈블리 이름 ("EnvDTE"또는 "envdte")을 오른쪽 클릭 ("해제") 한 다음 "속성"을 선택하고 "Interop Types 포함"속성을 false로 설정하고 다시 작성하십시오 그게 내 속임수 야.

+0

EF6로 옮겼습니까? 새로운 EF6 포함에 대해 동일한 작업을 수행했는지 궁금합니다. 지금 시작하겠습니다. – TravisWhidden

관련 문제