이 질문과 비슷한 발음 용어를 사용하는 많은 질문 (및 답변)을 읽었지만 그 모두가 다른 주요 버전 .Net의. 불행히도 나는 더 깊은 문제에 처해있다.빌드 할 .NET Framework의 서비스 팩 선택
다음은 이야기입니다. 고객은 .Net 프레임 워크 버전 2.0을 사용합니다. 단지 2.0, 전혀 서비스 팩이 없습니다. 우리 개발자들은 .NET 2.0 SP1을 사용해 왔는데, 잘 돌아갔다. 이제 우리가 작업하고있는 다른 프로젝트로 인해 개발자 (자신이 포함)가 .Net 2.0 SP2로 업데이트되었습니다. 그리고 이것이 문제가 시작된 곳입니다. 분명히 무한한 지혜로 MS는 주 버전 (예 : 2.1)을 증가시키지 않고 프레임 워크 으로 API를 변경/추가하기로 결정했습니다. 따라서 2.0에 맞춰 빌드하면 2.0 SP2 (빌드 된 경우)에 맞게 빌드되며 구성 방법이없는 것처럼 보입니다. 따라서 개발자는 2.0을 목표로하고 있다고 생각하는 코드를 작성할 수 있지만 고객 시스템에서는 작동하지 않습니다!
우리는 특정 빌드 (msbuild를 사용하여 완료)가 테스트 상자에서 실패하기 시작했지만 개발자의 컴퓨터에서 정상적으로 작동합니다. 분명히, 테스트 박스가 클라이언트 머신의 방식으로 설정되어 있고, 오래된 프레임 워크에 일부 API가 빠져 있기 때문에 분명합니다. 이제 빌드 팜이 모든 프로젝트를 테스트하기 위해 최신 버전의 CLR (spervice 팩 및 상위 주요 개정판 포함)을 설치하므로 원본 2.0에없는 API를 사용하는 빌드가 더 이상 실패하지 않습니다. 호환성 테스트에서 끔찍한 소식입니다.
제 질문은 이것입니다. 특정 CLR 버전 (동일한 주요 버전)에 대해 (msbuild를 사용하여) 빌드하는 방법. 특정 프로젝트에서 CLR의 특정 버전과 호환되지 않는 기능 (톱니 모양으로 렌치를 던지거나 FxCop 또는 이와 유사한 통합, 기본 VS2005 기능 만)을 사용할 때 VS2005가 오류를 발생시키는 지 확인하는 방법에 실패합니까?
위의 질문에 긍정적 인 답변이 없으면 나는 대안을 모색하고 있습니다.
감사합니다.
문제는 개발자 (특히 새 프로젝트 또는 다른 프로젝트의 코드 포팅)가 호환되지 않는 API 호출을 도입하는 경향이 있다는 것입니다. 지금은 개발자에게 완전히 투명하고 블랙리스트를 만들지 않고도 자신을 붙잡을 방법이 없으며 개발자가 무언가를 추가 할 때마다 개발자가 지속적으로 확인하게합니다. –
프레임 워크의 SP를 업데이트해야한다는 것을 알게되면 클라이언트에게 적합하게하는 것이 바람직합니다. 그렇지 않으면 알려진 결함있는 플랫폼 용으로 개발 중입니다. 즉, 모든 플랫폼에 결함이있는 것은 아니겠습니까? ;) – Lazarus
결국 업그레이드는 무료입니다. (예, 인프라 스트럭처 용 배포 솔루션이없는 경우 업 그레 이드 수행과 관련된 비용이 있음을 인정합니다.) 또한 워크 스테이션이이를받지 못한 경우 다음에 수신하지 않은 내용과 알려진 지원되지 않는 환경을 지원하는 데 추가 지원 시간이 얼마나 낭비되는지를 업데이트합니다.다시 첫 번째 코멘트로 돌아 가기;) – Lazarus