방법: 비주얼 스타일을 사용하여 WPF 응용 프로그램 게시
비주얼 스타일 모양을 공용 컨트롤에서 사용자가 선택한 테마에 따라 변경할 수 있습니다.수동으로 설정 해야 하므로 Windows Presentation Foundation (WPF) 응용 프로그램의 경우 기본적으로 비주얼 스타일을 사용할 수 없습니다.그러나 WPF 응용 프로그램에 비주얼 스타일을 사용 하면 한 다음 솔루션을 게시 하면 오류가 발생 합니다.이 항목에서는 사용 하는 비주얼 스타일을 사용 하는 WPF 응용 프로그램 게시 과정 및이 오류를 해결 하는 방법을 설명 합니다.비주얼 스타일에 대한 자세한 내용은 Visual Styles Overview을 참조하십시오.오류 메시지에 대 한 자세한 내용은 참조 하십시오. ClickOnce 배포 관련 오류 문제 해결.
이 오류를 해결 하 고 솔루션을 게시 하려면 다음 작업을 수행 해야 합니다.
비주얼 스타일을 사용 하지 않고 솔루션을 게시 하려면.
매니페스트 파일을 만들려면.
게시 된 솔루션의 실행 파일에 매니페스트 파일을 포함.
응용 프로그램 및 배포 매니페스트에 서명 하려면.
그런 다음 게시 된 파일을 최종 사용자가 응용 프로그램을 설치를 원하는 위치로 이동할 수 있습니다.
비주얼 스타일을 사용 하지 않고 솔루션을 게시 하려면
프로젝트를 비주얼 스타일을 사용 하도록 설정 되지 않은 확인 하십시오.첫째, 프로젝트의 매니페스트 파일에 대 한 XML 확인 합니다.그런 다음 XML이 있는 경우, XML을 주석 태그를 묶습니다.
기본적으로 비주얼 스타일을 사용할 수 없습니다.
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>
다음 절차를 프로젝트에 연결 된 매니페스트 파일을 여는 방법을 보여 줍니다.
Visual Basic 프로젝트에서 매니페스트 파일을 열려면
메뉴 표시줄에서 선택 프로젝트, 프로젝트 이름속성이, 어디 프로젝트 이름 WPF 프로젝트의 이름입니다.
WPF 프로젝트의 속성 페이지를 표시 합니다.
에 있는 응용 프로그램 탭에서 선택한 Windows 설정 보기.
App.manifest 파일을 엽니다는 코드 편집기.
C# 프로젝트에서 매니페스트 파일을 열려면
메뉴 표시줄에서 선택 프로젝트, 프로젝트 이름속성이, 어디 프로젝트 이름 WPF 프로젝트의 이름입니다.
WPF 프로젝트의 속성 페이지를 표시 합니다.
에 있는 응용 프로그램 탭에서 매니페스트 필드에 나타나는 이름 적어 둡니다.이 프로젝트와 관련 된 매니페스트의 이름입니다.
[!참고]
경우 기본 설정으로 구성 된 매니페스트 포함 또는 매니페스트 없이 응용 프로그램 만들기 비주얼 스타일을 사용할 수 없습니다 [매니페스트] 필드에 나타납니다.매니페스트 파일의 이름을 참고 문서 필드에 표시 되 면이 절차의 다음 단계로 진행 합니다.
솔루션 탐색기를 선택 모든 파일 표시 ().
이 단추는 제외 된 및 일반적으로 숨겨져 있는 것을 포함 하 여 모든 프로젝트 항목을 보여 줍니다.매니페스트 파일을 프로젝트 항목으로 표시 됩니다.
빌드하고 솔루션을 게시 합니다.솔루션을 게시 하는 방법에 대 한 자세한 내용은 참조 하십시오. 방법: 게시 마법사를 사용하여 ClickOnce 응용 프로그램 게시.
매니페스트 파일을 만들려면
다음 XML을 메모장 파일에 붙여넣습니다.
이 XML은 비주얼 스타일을 지 원하는 컨트롤에 포함 된 어셈블리를 설명 합니다.
<?xml version="1.0" encoding="utf-8"?><asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency></asmv1:assembly>
메모장에서 파일을 클릭한 다음 다른 이름으로 저장을 클릭합니다.
다른 이름으로 저장 대화 상자의 파일 형식 드롭다운 목록에서 모든 파일을 선택합니다.
에 있는 파일 이름 상자에서 파일 이름을 지정 하 고.manifest 파일 이름 끝에 추가 합니다.예를 들어: themes.manifest.
선택은 폴더 찾아보기 버튼, 모든 폴더를 선택한 다음 저장.
[!참고]
나머지 절차는이 파일의 이름은 themes.manifest 이며 파일 컴퓨터에 C:\temp 디렉터리에 저장 된 것을 가정 합니다.
게시 된 솔루션의 실행 파일에 매니페스트 파일을 포함
Visual Studio 명령 프롬프트를 엽니다.
여는 방법에 대 한 자세한 내용은 Visual Studio 명령 프롬프트를 참조 하십시오 Visual Studio 및 Windows SDK 명령 프롬프트.
[!참고]
나머지 단계는 솔루션에 대 한 다음과 같은 가정을 합니다.
-
솔루션의 이름 MyWPFProject입니다.
-
솔루션은 다음 디렉터리에 위치한: %UserProfile%\Documents\Visual Studio 2010\Projects\.
솔루션은 다음 디렉터리에 게시 됩니다: %UserProfile%\Documents\Visual Studio 2010\Projects\publish.
-
게시 된 응용 프로그램 파일의 최신 버전은 다음 디렉터리에 있습니다.%UserProfile%\Documents\Visual Studio 2010\Projects\publish\Application Files\WPFApp_1_0_0_0
이름 또는 위에 설명 된 디렉터리 위치를 사용 하지 않아도 됩니다.위에 설명 된 위치와 이름을 솔루션을 게시 하는 데 필요한 단계를 설명 하기 위해 사용 됩니다.
-
명령 프롬프트에서 경로 게시 된 응용 프로그램 파일의 최신 버전이 포함 된 디렉터리로 변경 합니다.다음 예제에서는이 단계를 보여 줍니다.
cd "%UserProfile%\Documents\Visual Studio 2010\Projects\MyWPFProject\publish\Application Files\WPFApp_1_0_0_0"
명령 프롬프트에서 응용 프로그램의 실행 파일에 매니페스트 파일을 포함 하려면 다음 명령을 실행 합니다.
mt –manifest c:\temp\themes.manifest –outputresource:MyWPFApp.exe.deploy
응용 프로그램 및 배포 매니페스트에 서명 하려면
제거 하려면 다음 명령을 명령 프롬프트에서 실행은 .deploy 실행 파일이 현재 디렉터리에서에서 확장명이 있습니다.
ren MyWPFApp.exe.deploy MyWPFApp.exe
[!참고]
파일이 하나만 있는 것으로 가정에서 .deploy 파일 확장명입니다.이 디렉터리에 있는 파일을 모두 바꿔야는 .deploy 파일 확장명입니다.
명령 프롬프트에서 응용 프로그램 매니페스트를 서명 하려면 다음 명령을 실행 합니다.
mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
[!참고]
사용 하 여 매니페스트를 서명 하는 것으로 가정에서 .pfx 프로젝트 파일입니다.매니페스트에 서명 하는 않는 경우 생략할 수는 –cf 이 예제에 사용 되는 매개 변수입니다.지정한 암호가 필요한 인증서로 매니페스트에 서명 하는 경우는 –password 옵션 (For example: mage –u MyWPFApp.exe.manifest –cf ..\..\..\MyWPFApp_TemporaryKey.pfx – password Password).
명령 프롬프트에 다음 명령을 추가 하려면 실행은 .deploy 이 절차의 이전 단계에서 이름을 바꾼 파일 이름 확장명입니다.
ren MyWPFApp.exe MyWPFApp.exe.deploy
[!참고]
파일이 하나만으로 가정 했던 한 .deploy 파일 확장명입니다.이전에이 디렉터리의 모든 파일을 바꿔야는 .deploy 파일 이름 확장명입니다.
명령 프롬프트에서 배포 매니페스트에 서명 하려면 다음 명령을 실행 합니다.
mage -u ..\..\MyWPFApp.application -appm MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
[!참고]
사용 하 여 매니페스트를 서명 하는 것으로 가정에서 .pfx 프로젝트 파일입니다.매니페스트에 서명 하는 않는 경우 생략할 수는 –cf 이 예제에 사용 되는 매개 변수입니다.암호가 필요한 인증서로 매니페스트에 서명 하는 경우 지정은 –password 옵션에에서:For example: mage –u MyWPFApp.exe.manifest –cf ..\..\..\MyWPFApp_TemporaryKey.pfx – password Password.
이러한 단계를 수행한 후에 게시 된 파일을 최종 사용자가 응용 프로그램을 설치를 원하는 위치로 이동할 수 있습니다.솔루션에는 업데이트 하려는 경우이 명령을 스크립트에 이동 하 고 새 버전을 게시 될 때마다 스크립트를 실행 있습니다.
참고 항목
참조
Enabling Visual Styles
Visual Studio 및 Windows SDK 명령 프롬프트