2013-06-05 1 views
0

내가 몇 가지 배경 넣어 갈거야 웹 사이트 프로젝트와 entityframework 5EF 5와 웹 사이트 충돌

문제에 봉착 : 배포 할 때, 프로젝트 유형은 웹 사이트가 아닌 웹 응용 프로그램 또는 MVC입니다, 모든 파일을 서버에 복사하기 만하면 모든 파일이 처음 방문 할 때 컴파일됩니다. 그리고 그것이 내가 문제를 일으키는 것이라고 생각합니다.

프로젝트가 .Net 4.0을 대상으로하므로 EntityFramework를 nuget에서 설치할 때 dll 파일 버전은 4.4입니다. Visual Studio에서 IIS Express를 사용하여 프로젝트를 실행하면 (VisualStudio는 대상 프레임 워크가 4이고 .NET Framework 4 dll을 사용하여 프로젝트를 컴파일하므로) .Net Framework 4.5가 설치된 프로덕션 서버로 파일을 복사 할 때 .NET Framework 4.5 dll에 대해 웹 사이트가 컴파일되고 EntityFramework 4.4에 .Net 4.5의 dnell에 포함 된 클래스 (예 : Column)에 대한 정의가 포함되어 있기 때문에 문제가 나타납니다.

The type 'System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute' exists in both 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.ComponentModel.DataAnnotations\v4.0_4.0.0.0__31bf3856ad364e35\System.ComponentModel.DataAnnotations.dll' and 'c:\Users\jyuste\AppData\Local\Temp\Temporary ASP.NET Files\portalempleado\4700d3ec\2c948b16\assembly\dl3\1c8b81c9\750c5018_1e5dce01\EntityFramework.DLL' 

나는 4.5 .NET으로 프로젝트를 업그레이드하고 문제를 해결할 것 EntityFramework 참조를 업데이트한다고 가정하지만, 지금은 그것을 할 수 없습니다.

다른 해결책이 있다고 생각하십니까?

+0

'web.config'에 '이 있습니까? –

+0

예 : <어셈블리 추가 = "System.Data.Entity, 버전 = 4.0.0.0, 문화 = 중립, PublicKeyToken = B77A5C561934E089"/> ...

답변

0

작성할 때 가능한 해결책은 배포 절차를 변경하는 것입니다.

대상 서버에 C# 원본 파일을 복사하는 대신 먼저 사이트를 로컬로 모든 디렉터리에 게시하십시오. 게시는 VS 메뉴의 "Build/Publish Web Site"옵션을 사용하여 수행 할 수 있습니다.

모든 소스 파일을 컴파일하고 컴파일로 * .dll을 만 선언적 코드 (* .ASPX, *. ASCX, *. ASMX, 등)이 포함 된 /빈 폴더를 포함하는 배포 준비 sturcture을 만듭니다 C# 코드.

그런 다음 게시 된 구조를 대상 서버로 복사하십시오.

+0

예, 나는 이미이 가능성을 생각해 왔지만, 클라이언트의 필수 요건 중 하나는 서버에서 코드를 변경할 수 있다는 것입니다. 내 옵션은 다음과 같습니다. 대상 프레임 워크를 변경하거나 서버에서 .Net 버전을 다운 그레이드하십시오. –