web-dev-qa-db-ja.com

すべてのファイルを1つのexeにコンパイルする方法は?

たくさんの画像、Milkモデル、openGLを使用するプロジェクトをC#で作成しましたが、すべてを1つのexeにパックして、自分のサイトにアップロードできるようにします。今、私はjpgなどの他のファイルに依存しているexeファイルを手に入れました。 ILMergeを使用してみましたが、機能しませんでした。より簡単な解決策はありますか?ありがとう。

11
Segev

それを埋め込みリソースとして追加します。

Visual Studioの内部:

  1. ソリューションエクスプローラーに移動し、
  2. 画像を右クリックして、
  3. ビルドアクションに移動:[埋め込みリソース]を選択します。

Exeファイル内にその画像があります。後でReflectionを使用して、アプリケーションを実行するときに画像を取得できます。

=========アプリケーションからの埋め込み画像の取得=========

最初に最初の問題を解決します。画像を埋め込みリソースとして配置します。

2番目の問題:Reflectionを使用して画像にアクセスします。

private void Form1_Load(System.Object sender, System.EventArgs e)
{
    System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
    Stream myStream = myAssembly.GetManifestResourceStream("EmbeddingExample.image1.bmp");
    Bitmap image = new Bitmap(myStream);

    this.ClientSize = new Size(image.Width, image.Height);

    PictureBox pb = new PictureBox();
    pb.Image = image;
    pb.Dock = DockStyle.Fill;
    this.Controls.Add(pb);
}

ここ から借りたソースコード:

6
Rajesh

すべてのファイル/画像をEmbedded Resourcesとしてexeに入れることができます。

見る Visual C#を使用してリソースを埋め込んでアクセスする方法 (このリンクは現在404秒です)

8
logicnp

ilmergeは、.net CLRバイナリをマージするためだけのものであり、通常はライブラリをメインの実行可能ファイルにバンドルするためのものです。

アートアセットのようなものについては、それらをリソースとしてアプリケーションに埋め込む必要があります。リソースから、ファイル内にあるかのようにデータを操作できるストリームを取得できます。

リソースの埋め込みについては、次のMSDNの記事を参照してください。 http://support.Microsoft.com/kb/319292

3
PhonicUK

プロパティでプロジェクトに画像を追加すると、埋め込みリソースとして設定でき、バイナリファイル(dllまたはexe)に追加されます。

2
Fedor Hajdu

リソースファイル用のサテライトアセンブリを作成することをお勧めします。 http://msdn.Microsoft.com/en-us/library/21a15yht%28v=vs.71%29.aspx

1
Tinku