2011-08-16 3 views
8

.Net 3.5 및 .Net 4.0 모두에 대해 프로젝트를 컴파일해야합니다. 가장 낮은 마찰 방식은 무엇입니까? 다른 어셈블리에서이 프로젝트를 참조하면 어떤 런타임을 대상으로 결정할 수 있습니까? 아니면 바이너리를 직접 참조해야합니까?.Net 3.5 및 4 모두 동시에 프로젝트를 컴파일하는 방법

+2

실제 차이가있다 코드 또는

은 기본적으로 당신은 그런 일에 종료됩니다 다른 플랫폼을 타겟팅 할 때 어떤 dll을 참조합니까? – alun

+1

코드에서 .NET4 기능을 사용하지 않으면 왜 .NET 4로 컴파일해야합니까? .NET4 프로젝트는 문제없이 .NET 3.5 컴파일 바이너리를 사용할 수 있습니다. – jgauffin

+0

아니요, 코드에는 차이가 없습니다. 모든 어셈블리는 2.0 버전의 lib를 참조합니다. –

답변

9

두 개의 csproj 파일을 사용하면됩니다. 그런 다음 버전, 참조, 빌드 기호 등을 쉽게 설정할 수 있습니다.

<Compile Include="..\TheMainProject\**\*.cs" /> 

이 "의 모든 .cs 파일을 컴파일 말합니다과 (보조 .csproj에서) 내가 가지고있는

을 즉 - 모두에서 파일 목록을 유지하는 것을 피하기 위해, 나는 포함 담요를 사용 \ TheMainProject "에서.

+0

고마워, 나는 그것이 내가 갈 것 인 것이라고 생각한다. –

1

왜 필요한가요? 게시물/사전 빌드 작업이 인수 "toolversion"을 참조하십시오, 다른 프레임 워크를 대상으로

http://msdn.microsoft.com/en-us/library/ms164311.aspx

MSBuild.exe를 MyProject.proj /ToolsVersion:4.0를 msbuild를 실행할 수와

http://msdn.microsoft.com/en-us/library/ee395432.aspx

에서 봐하지만 여전히 나는 어떤 situat가 표시되지 않습니다 이온이 필요한 곳.

+0

전체 런타임, Silverlight, Monodroid 등을 타겟팅 할 때 비슷한 상황이 발생합니다. 물론 코드가 .net 버전 사이에 약간 다른 경우에도 마찬가지입니다. 아마도 새로운 버전의 프레임 워크에서만 지원되는 기능을 추가했을 것입니다. – CodesInChaos

관련 문제