.NETでのファイルタイプとカスタムドキュメントアイコンの登録
質問
ファイルを作成するアプリケーションがあります。これらのファイルをアプリケーションに接続して、ファイルをダブルクリックするとアプリケーションが起動するようにします。
アイコンがアプリケーションのアイコンのように見えるという煩わしさを除いて、すべてが正常に機能します。アプリケーション用に1つのアイコンと、ドキュメント用に1つのアイコンが必要です。
レジストリのDefaultIcon値には" app.exe、1"が必要です。 1がアイコンインデックスである構文。 .NETリソースはWin32リソースではないようです。
次のことを試みましたが成功しませんでした:
- 「埋め込みリソース」を選択として ファイルのビルドアクション。
- リソースファイルへのアイコンの追加。
動作したのは、実行可能ファイルから分離されたアイコンファイルを持ち、それを指していることだけです。しかし、それは降伏のように思えます。
これを解決する方法はありますか?
解決
アイコンインデックスとして2を設定しようとしましたか?
編集: 方法を見つけましたが、新しいビルドごとにもう一度行う必要があります。
- Visual Studioで.exeファイルを開きます(ファイル->ファイルを開く)
- アイコンフォルダを右クリックして、[リソースの追加]を選択します
- 「インポート」ボタンをクリックします
- .icoファイルを選択
- アイコン番号を台無しにする必要があるかもしれません。最も小さい番号(例101)はアプリケーションのアイコンになると思います
- 新しいアイコン番号を覚えて、インデックスとして設定します
編集2: この記事をお試しください: http://www.codeproject.com/KB/dotnet/embedmultipleiconsdotnet。 aspx
他のヒント
Wixツールセット( http://www.wixtoolset.org )を使用してアプリケーションをインストールする場合、Wixにファイルタイプとドキュメントアイコンの登録を処理させることができます
ここに私の魔法のWix呪文があります:
<!-- Your executable -->
<File
Id="MaAppExe"
Name="MyApp.exe"
Source="MyApp.exe" KeyPath="yes" >
</File>
<!-- your document icon -->
<File
Id='IconMyAppDoc.ico'
Name='IconMyAppDoc.ico'
Source='$(var.MyApp.ProjectDir)\Resources\Images\Icons\docicon.ico' />
<-- File Extension and associated document icon -->
<ProgId
Id='MyApp.MyAppExtension'
Description='My App Data File'
Icon='IconMyAppDoc.ico'>
<Extension
Id='MyApp'
ContentType='text/plain'>
<Verb
Id='open'
Command='Open'
TargetFile="MyAppExe"
Argument='"%1"' />
</Extension>
</ProgId>
</Component>
DefaultIcon
は、有効な.icoファイルへのパスもアイコンとして受け入れます。
.netアイコンだけでなく、プロジェクトにWin32アイコンがあることを確認する必要があります。私は誰かがこれを行う簡単な方法を指摘することを望んでいますが、その間に、ここに行きます...
アセンブリをコンパイルし、Visual Studioから&quot; File-&gt;を選択します。オープン-&gt;ファイルを開く&quot ;、コンパイル済みアセンブリを開きます。ドキュメントに使用するアイコンを追加し、そのIDをアプリで使用するアイコンの上に設定します。アセンブリを保存します。これでWin32リソースが利用可能になりました。
-編集-
彼の投稿を編集した後、ZippyVは非常に良い答えを持っているようです。