方法 : Visual スタイルが有効になっている WPF アプリケーションを公開する
visual スタイルはユーザーが選択したテーマに基づいて変更にコモン コントロールの外観を有効にします。既定ではvisual スタイルではWindows Presentation Foundation アプリケーションで有効に (WPF) なっているため手動で有効にする必要があります。ただしWPF アプリケーションで visual スタイルを有効にするにはソリューション エラーの原因を公開します。このトピックではこのエラーを解決する方法について説明しvisual スタイルを WPF アプリケーションを有効にした発行するプロセス。visual スタイルの詳細については、「Visual Styles Overview」を参照してください。エラー メッセージの詳細についてはClickOnce 配置の固有のエラーのトラブルシューティング を参照してください。
エラーを解決するにはソリューションを発行するには次のタスクを実行する必要があります :
ソリューションを有効にする Visual スタイルを設定せずに発行するには.
マニフェスト ファイルを作成するには.
マニフェスト ファイルを発行したソリューションの実行可能ファイルに埋め込むには.
アプリケーション マニフェストと配置マニフェストに署名するには.
その後エンド ユーザーがアプリケーションをインストールする場所に発行されたファイルを移動できます。
ソリューションを有効にする Visual スタイルを設定せずに発行するには
プロジェクトに有効な Visual スタイルがないことを確認してください。最初に次の XML のプロジェクトのマニフェスト ファイルをチェックします。その後XML がある場合はコメントを XML のタグで囲みます。
既定ではVisual スタイルを有効にする必要があります。
<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 プロジェクトのプロパティ ページが表示されます。
[入力] ENT0ENT タブでWindows 設定の表示 を選択します。
*** Code Editor *** のアプリケーション マニフェスト ファイルが開きます。
C# のマニフェスト ファイルを開くには
メニュー バーで プロジェクト名 が WPF プロジェクトの名前である プロジェクト プロジェクト名 プロパティ を選択します。
WPF プロジェクトのプロパティ ページが表示されます。
[入力] ENT0ENT タブでマニフェストのフィールドに表示される名前をメモします。これはプロジェクトに関連付けられたマニフェストの名前です。
[!メモ]
マニフェストを既定の設定で埋め込みます *** Create application without manifest *** かが明らかなフィールドにはvisual スタイルを有効にする必要があります。マニフェスト ファイルの名前が明らかなフィールドにある場合はこの手順の次の手順に進みます。
ソリューション エクスプローラー では すべてのファイルを表示 を選択します ()。
このボタンは除外されると通常は非表示にしたり表示も含めすべてのプロジェクトの項目を取得します。マニフェスト ファイルはプロジェクト項目として表示されます。
ソリューションをビルドして発行します。ソリューションを発行する方法の詳細については方法: 発行ウィザードを使用して ClickOnce アプリケーションを発行する を参照してください。
マニフェスト ファイルを作成するには
次の XML をメモ帳ファイルに貼り付けます。
この XML はvisual スタイルをサポートするコントロールを含むアセンブリについて説明します。
<?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>
メモ帳の [ファイル] をクリックし、[名前を付けて保存] をクリックします。
[名前を付けて保存] ダイアログ ボックスの [ファイルの種類] ドロップダウン リストで、[すべてのファイル] をクリックします。
[入力] ENT0ENT ボックスのでファイル名を指定しファイル名の終わりに .manifest を追加します。例 : themes.manifest.
[ENT0ENT] ボタンをクリックしフォルダーをクリックし[ENT1ENT] をクリックします。
[!メモ]
残りの手順ではこのファイルの名前は 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
[!メモ]
この例では1 種類のファイルだけ .deploy ファイル拡張子を持つことを前提としています。.deploy ファイル拡張子を持つディレクトリのすべてのファイルの名前を変更することを確認します。
コマンド プロンプトでアプリケーション マニフェストに署名する次のコマンドを実行します。
mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
[!メモ]
この例ではプロジェクト内の .pfx ファイルを使用してマニフェストに署名すると仮定します。マニフェストに署名するこの例で使用されている – cf パラメーターを省略できます。パスワードを必要とする証明書でマニフェストに署名する場合は – passwordFor example: mage – u MyWPFApp.exe.manifest – cf ..\..\..\MyWPFApp_TemporaryKey.pfx – passwordPassword オプション () を指定します。
コマンド プロンプトでこの手順で前の手順で名前を変更したファイルの名前に .deploy の拡張子を追加するには次のコマンドを実行します。
ren MyWPFApp.exe MyWPFApp.exe.deploy
[!メモ]
この例では1 種類のファイルだけ .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 – passwordPassword。
これらの手順を実行するとエンド ユーザーがアプリケーションをインストールする場所に発行されたファイルを移動できます。ソリューションを頻繁に更新する場合は新しいバージョンを発行するスクリプトにこれらのコマンドを移動またはスクリプトがいつ実行できます。
参照
関連項目
Enabling Visual Styles
Visual Studio と Windows SDK のコマンド プロンプト
概念
ClickOnce 配置の固有のエラーのトラブルシューティング