セルフオープニングドキュメントの作成
-
29-10-2019 - |
質問
私は独自のファイル形式を持つプロジェクトに取り組んでいます。プロジェクトには、インストールが必要な大きなプログラムと、インストールを必要としない小さなビューアがあります。メインアプリケーションから「セルフオープン」.exeのファイルをエクスポートできるようにしたいと思います。つまり、exeをダブルクリックすると、埋め込まれたファイルが表示されます(これは、ビューアーを持っている人に渡すためです。それを表示できるメインアプリケーションはインストールされていません。ドキュメントを渡すだけです。
これを行う方法に少し迷っています。私が調査してきた私の2つの考えは行き詰まりました。それらは:
1)ファイルをビューアに埋め込みます。 Visual Studioを使用して手動でこれを行うことができ、そのデモを実行できますが、その場でこれを行う方法がわかりません。
2)ファイルとexeをtempに抽出し、コマンドラインでファイル名を使用してexeを実行する自己解凍型アーカイブを作成します。これは簡単で可能に聞こえますが(ハッキーですが)、プログラムのアーカイブまたはインストールに、すべてを実行するために必要なコマンドラインがないように見えるという問題に遭遇しました。
何かアイデアはありますか? 2つ目は簡単なので2つ目が好きですが、1つ目は防弾性が高く、ハッキングが少ないように見えるためです。
解決
exeをドキュメントにバンドルして自己オープンドキュメントにするのはクールなアイデアですが、問題の最善の解決策ではないと思います。問題は、ドキュメントがすぐに利用できない特定のビューアを必要とすることです。そのため、ビューアをできるだけ簡単に取得できるようにしてください。
そしてそれはXint0がコメントで示唆したことです。ビューアをできるだけ簡単に利用できるようにする方法を見つけます。プロプライエタリフォーマットのビューアであるため、著作権侵害について心配する必要はありません。そのため、著作権侵害に関心があるのは、開くことができないドキュメントをすでに持っている人だけです。したがって、視聴者を会社のWebサイトに投稿し、完全なソフトウェアを使用している企業に、視聴者へのリンクをWebサイトに投稿して、顧客が簡単に見つけられるようにすることをお勧めします。
他のヒント
方法の使用(1):
.NETを使用している場合は、ビューアプログラムを1つのアセンブリにし、ドキュメントを別のアセンブリにすることができます。次に、
ILMergeはコマンドラインプログラムであるため、そのステップを自動化できるはずです。
そうすれば、カスタマイズしたビューアを基本的に「私と一緒にある他のアセンブリをロード」し、おそらく他のアセンブリの関数を呼び出してデータを取得するのはかなり簡単です。
パズルの他の唯一のピースは、「ドキュメント」アセンブリを生成する方法です。手順は完全にはわかりませんが、実行できるはずです。
おそらく、CMakeなどを使用してVStudioプロジェクトを生成し、MSBuildを使用してそれをアセンブリにビルドします。