Win7에서 ClickOnce/WinForm App을 GDI 1.0기반으로 수행하도록 메니페스트 수정할때 의외의 오류에 대해서 정리되지 않은 기술

Side By Side .NET 애플리케이션에서 필요에 의해 네이티브 DLL을 골라 올리고 싶을 때, 메니페스트 파일을 이용하게 된다. ClickOnce 애플리케이션의 경우는 알게 모르게, 프로젝트 속성의 보안 탭에 CLickOnce 보안 설정 사용이 체크 됨에 따라 app.manifest 파일을 자연스럽게 이용하는 경우가 있다. 이때, 해당 manifest 파일을 수정하여 필요한 네이티브 DLL Side By Side 형태로 올릴 수 있다.

예를 들어, Windows 7에서는 Windows Form과 같은 GDI를 사용하는 애플리케이션은 default GDI+1.1 WIC가 로드되는 데, 필요에 의해 WIC를 사용 안하고 GDI 1.0을 로드할 수도 있다. 이를 위해서는 다음과 같이 메니페스트 파일에 dependency를 추가하여 GDI 1.0 모듈을 로드하도록 지정할 수 있다.

 

<dependency>

    <dependentAssembly asmv2:dependencyType="preRequisite" >

      <assemblyIdentity type="win32" name="Microsoft.Windows.GdiPlus"

                        processorArchitecture="x86" version="1.0.0.0"

                        publicKeyToken="6595b64144ccf1df" language="*"/>

    </dependentAssembly>

  </dependency>

 

주의해야 하는 부분은, ClickOnce 기반의 WinForm App의 경우에

 

<dependency>

    <dependentAssembly dependencyType="preRequisite" >

      <assemblyIdentity type="win32" name="Microsoft.Windows.GdiPlus"

                        processorArchitecture="x86" version="1.0.0.0"

                        publicKeyToken="6595b64144ccf1df" language="*"/>

    </dependentAssembly>

  </dependency>

 

이와 같이 메니페스트를 추가하였을 경우에는 혹 컴파일시 오류       1         'Microsoft.Windows.GdiPlus, Version=1.0.0.0, Culture=*, PublicKeyToken=6595b64144ccf1df, ProcessorArchitecture=x86, Type=win32' 파일을 찾을 수 없습니다.           WindowsFormsApplication5” 와 같은 메시지와 함께 ClickOnce Project가 컴파일 되지 않을 수 있으므로 주의해야 한다.


덧글

댓글 입력 영역