.NET 2.0 ~ 3.5 + x64 환경에서 System.EnterpriseServices 참조 시 CS8012 경고
(요즘에는 거의 안 쓰겠지만) .NET Framework 2.0 ~ 3.5 프로젝트로 System.EnterpriseServices 어셈블리를 참조하면 x86 빌드에서는 상관없지만 x64 빌드에서는 다음과 같은 CS8012 경고가 발생합니다.
1>------ Rebuild All started: Project: ClassLibrary1, Configuration: Debug Any CPU ------
1>CSC : warning CS8012: Referenced assembly 'System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' targets a different processor.
1> ClassLibrary1 -> C:\temp\ConsoleApp1\ClassLibrary1\bin\Debug\ClassLibrary1.dll
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
반면 Framework을 4.0 이상으로 하면 발생하지 않는데요, 아마도 2.x 시절에는 그에 대한 배려가 없었던 것으로 보입니다. 즉, 경고는 무시해도 되지만 정히 거슬린다면 프로젝트 속성 창에서 "CS8012"에 대한 경고를 "Suppress warnings"에 설정해 두면 됩니다.
혹은, csproj에 다음과 같은 항목을 추가해도 됩니다.
<PropertyGroup Condition=" '$(PlatformTarget)' == 'x64' ">
<NoWarn>CS8012</NoWarn>
</PropertyGroup>
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]