2012-04-20 3 views
2

다른 프로젝트에 대해 VS2008VS2010과 동시에 작업하고 있습니다. 최근에 나는 엔터티 프로젝트에 대한 직렬화 어셈블리를 생성하기 위해 노력하고 이것은 아래의 오류 던졌습니다 비주얼 스튜디오 2010를 통해 동일한 작업을 생성 할 수 없습니다 :잘못된 형식의 어셈블리를로드하려고했습니다

An attempt was made to load an assembly with an incorrect format: X:\Dev\Proj\X.Entities\bin\Debug\X.entities.dll. 

이 내가 엔티티에 대한 설정이 포스트 빌드 이벤트를 수입니다

"$(FrameworkSDKDir)\Bin\sgen" /nologo /force $(TargetFileName) 
copy "$(TargetDir)X.Entities.Serializer.dll" "$(SolutionDir)\X.Site\Bin" 

프로젝트

은 내가 VS 2010 명령 줄에서 시리얼 DLL을 생성 할 수 있어요. VS2008 프로젝트의 경우; 선은 잘 작동합니다. 그러나 오류는 VS2010 프로젝트에 있습니다!

VS2010에 다른 변수 FrameworkSDKDir이 있습니까? 아니라면 VS2010 및 VS2008 프로젝트에서 모두 작동하도록 수정하는 방법은 무엇입니까?

BTW, 개발을 위해 2008 Server 32 비트 OS, IIS 7을 사용합니다.

+0

는 VS2010에서 sgen.exe의 4 개 버전이 있습니다. 32 비트 대 64 비트 CLR 2 CLR 4의 조합 4. .NET 4 버전을 가져와 CLR 2를 대상으로하는 프로젝트에서로드하려고합니다. –

+1

@HansPassant : 모든 프로젝트가 설정됩니다. 4.0 프레임 워크로, 따라서 CLR 2로드하려고 생각하지 않습니다. 가리키는 경우에도 어떻게 변경할 수 있습니까? – Kay

+0

먼저 문제를 확인해야합니다. 그런 다음 문제를 해결할 수 있습니다. ildasm.exe를 사용하여 가정을 검증하면 매니페스트에 예상 CLR 버전이 표시됩니다. –

답변

3

당신이 가리키는 sgen은 CLR 2.0입니다. 이상적으로는 C : \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin에 있습니다.

"C : \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools"에 sgen 4.0 버전이 있습니다.이 도구는 문제를 해결합니다.

귀하의 포스트 빌드 명령은 다음과 같이 시작한다 :

"$(FrameworkSDKDir)\bin\NETFX 4.0 Tools\sgen" 
관련 문제