글 수 369
빌드 서버까지 모두 윈도우 서버 2012로 마이그레이션을 진행했는데, 아차... 싶은 문제가 발생했습니다.
회사의 제품군 중 하나가 .NET Framework 1.1 을 지원하는데, 이를 위해 .NET 1.1의 csc.exe로 특정 모듈들이 빌드되어야 했던 것이지요.
하지만, Windows 8 / Windows Server 2012에서는 더 이상 .NET 1.1을 지원하지 않는 문제가 있습니다.
실제로, Windows Server 2008 R2를 2012로 마이그레이션 하고 나면 "C:WindowsMicrosoft.NETFrameworkv1.1.4322" 폴더에 있던 대부분의 파일들이 삭제되어 버립니다.
내심... ^^; 철렁했지만, 일단 마음을 가다듬고 생각을 해봤습니다. 어차피 .NET Framework 1.1용 응용 프로그램을 실행하는 것도 아니고, 단지 빌드만 할 뿐인데 어떻게든지 csc.exe 정도만 실행되도록 만드는 것은 가능하지 않을까??? 하는 희망적인 느낌이 들었던 것입니다.
그래서, 마이그레이션으로 인해 기존 파일들이 "Windows.old" 로 넘어가 있던 폴더(C:Windows.oldWindowsMicrosoft.NETFrameworkv1.1.4322)의 모든 파일들을 "C:WindowsMicrosoft.NETFrameworkv1.1.4322" 폴더로 그대로 복사를 한 후 컴파일을 해봤습니다.
결과는? ^^ 성공!
하지만, 테스트 용 프로젝트 중에서 .NET Remoting을 사용하는 프로젝트는 아쉽게도 빌드 중에 그냥 멈추는 현상이 발생했습니다. 별다르게 중요한 프로젝트가 아니었기에 넘어갔지만... 어쨌든 .NET Framework 1.1 용 응용 프로그램을 빌드하는 서버를 2012로 마이그레이션할 때는 이런 부분을 미리 테스트 해보시고 넘어가야 할 것입니다.
그나저나... 신기하군요. 테스트 해보니 .NET 1.1로 컴파일된 exe 파일들은 실행까지 잘 됩니다. 아마도 마이크로소프트 측에서 "보증"을 포기한 것일 뿐, 대체로 실행 자체까지 안되도록 일부러 막은 것은 아닌 듯 합니다.
회사의 제품군 중 하나가 .NET Framework 1.1 을 지원하는데, 이를 위해 .NET 1.1의 csc.exe로 특정 모듈들이 빌드되어야 했던 것이지요.
하지만, Windows 8 / Windows Server 2012에서는 더 이상 .NET 1.1을 지원하지 않는 문제가 있습니다.
Running .NET Framework 1.1 Applications on Windows 8
; http://msdn.microsoft.com/en-us/library/hh925570.aspx
실제로, Windows Server 2008 R2를 2012로 마이그레이션 하고 나면 "C:WindowsMicrosoft.NETFrameworkv1.1.4322" 폴더에 있던 대부분의 파일들이 삭제되어 버립니다.
내심... ^^; 철렁했지만, 일단 마음을 가다듬고 생각을 해봤습니다. 어차피 .NET Framework 1.1용 응용 프로그램을 실행하는 것도 아니고, 단지 빌드만 할 뿐인데 어떻게든지 csc.exe 정도만 실행되도록 만드는 것은 가능하지 않을까??? 하는 희망적인 느낌이 들었던 것입니다.
그래서, 마이그레이션으로 인해 기존 파일들이 "Windows.old" 로 넘어가 있던 폴더(C:Windows.oldWindowsMicrosoft.NETFrameworkv1.1.4322)의 모든 파일들을 "C:WindowsMicrosoft.NETFrameworkv1.1.4322" 폴더로 그대로 복사를 한 후 컴파일을 해봤습니다.
결과는? ^^ 성공!
하지만, 테스트 용 프로젝트 중에서 .NET Remoting을 사용하는 프로젝트는 아쉽게도 빌드 중에 그냥 멈추는 현상이 발생했습니다. 별다르게 중요한 프로젝트가 아니었기에 넘어갔지만... 어쨌든 .NET Framework 1.1 용 응용 프로그램을 빌드하는 서버를 2012로 마이그레이션할 때는 이런 부분을 미리 테스트 해보시고 넘어가야 할 것입니다.
그나저나... 신기하군요. 테스트 해보니 .NET 1.1로 컴파일된 exe 파일들은 실행까지 잘 됩니다. 아마도 마이크로소프트 측에서 "보증"을 포기한 것일 뿐, 대체로 실행 자체까지 안되도록 일부러 막은 것은 아닌 듯 합니다.