2017-02-07 3 views
0

clickonceがインストールされているアプリケーションと特定の拡張子のファイルとの間でファイルの関連付けを試みています。この作品OpenFileDialogのファイルとの関連付け後にアイコンが表示されない

Publish Options

が、私はファイルがアプリケーションをインストールした後に関連している見ることができ、アイコンを次のように、ファイルを関連付けるために、プロジェクトのプロパティからをファイルの関連付け - 私はオプションを公開を使用しています追加されたファイルは、指定された拡張子で表示されます。 、

OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
openFileDialog1.Filter = "test files|*.test1"; 
openFileDialog1.Title = "Select a test file"; 

if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
{ 

} 

ダイアログが正しく表示されます。

今私は、アプリケーション内のオープンオプションを指定してファイルを開くしようとしていますので、以下のように、私はOpenFileDialogオブジェクト上ShowDialog()メソッドへの単純な呼び出しを行ってきました私はファイルを見ることができますが、唯一の問題はファイルアイコンが空であることです。

File shown in dialog box

上の画像にファイルが空白のアイコンで表示されていることに注意してください。 Windowsエクスプローラでファイルを表示するとイメージがあるので、何が起こっているのか、どうすれば解決できるのか分かりません。

File in Windows Explorer

注:は、私はちょうど私がペイントからオープンオプションを使用して同じファイルを表示する場合は、ファイルのアイコンが正しく表示されていることを実現しますが、Microsoft Excelのと同じオープンは、私と同じように動作しますアプリケーションにはファイルアイコンが表示されないので、これがバグかどうか疑問に思います。アドバイスありがとうございます!

+1

大まかな推測では、64ビットプロセス(ExplorerやPaintなど)では問題なく動作しますが、32ビットプロセスはキャッシュから古くなったアイコンを取得します。そのキャッシュは決して問題ではありません。ヒントのためにGoogleの "シェルアイコンキャッシュをリセット"してください。それが別のマシンで正常に動作することを確認してください。 –

+0

フィードバックのための@HansPassantありがとうございました!私はちょうど修正する必要があるこの問題を受け取りました、それはまったく同じ方法で他の2つの異なるマシンで再現します。 – meJustAndrew

+0

@HansPassant再びありがとう、私は問題を解決するために管理している、あなたは私の答えを確認することができます、あなたは何か提案があれば、私はそれを感謝します。また、x86とx64の両方のアーキテクチャで同時にファイル共有を行うことが可能かどうかは知っていますか?ありがとうございました! – meJustAndrew

答えて

1

Hans Passantが指摘したように、OpenFileDialogを実行していたプロセスのビットアーキテクチャとファイルの関連付けが行われたアーキテクチャとの間に不一致がありました。

アプリケーションをClickOnceので出版されたとき、の下で32ビットチェックボックスを好むプロパティを構築するのClickOnceインストーラが64ビットレジストリの下でファイルの関連付けを作っていたのx64マシン上のように、デフォルトとしてチェック残っていたが、アプリケーションはまだ32ビットモードで動作していました。この不一致のために、32ビットアーキテクチャ上に構築されたアプリケーションの中には、ファイルダイアログでファイルの関連付けを見ることができませんでした。

のチェックを外してください。は、Clickonceインストーラとアプリケーションが同じアーキテクチャで実行されているため、私の問題を解決しました。

+0

私の場合、アイコンはどのような状況でも表示されません。そして、あなたの修正は私の問題を解決しません。 – Franck

関連する問題