C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.62480 の関連記事表示

<< 0 >>
■62480  リソースファイルの管理でファイルサイズは2倍?
□投稿者/ ポコニャン! -(2011/10/13(Thu) 21:53:37)

    分類:[.NET 全般] 

    VisualStudio2005でアプリを作っています。
    その中でリソースデザイナでファイルの管理をしているのですが、どうしてもビルドした後はファイルサイズが2倍になってしまうものでしょうか?
    例えばですが、リソースファイルが、50MBあったとします。
    そこでビルドをしてVS2005のbin下のReleaseフォルダには配布用のEXEが50MBのファイルを含んだ状態で作成されかつ、Resourcesフォルダには登録したリソースファイルがありますよね。
    プログラムの中でリソースファイルの取り出しもしているのでEXEだけで動かすとエラーになります。
    まぁフォルダごと配れば問題ないわけですが、でもサイズが2倍になるのは何とかできないかな。。。と思うのですがなぜEXEにリソースファイルが含まれているにもかかわらずEXEだけで動かせないのでしょうか?
親記事 /過去ログ105より / 関連記事表示
削除チェック/

■62483  Re[1]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ Azulean -(2011/10/13(Thu) 22:11:16)
    よくわかりません。

    exe にファイルを埋め込みたいのですか?
    exe からフォルダーの下にあるファイルを参照する形にしたいのですか?

    前者であれば、そもそも exe だけで実行するとエラーになるという設計・実装が間違っています。
    リソースから取り出すようなコードを書いてください。(Resources.hogehoge みたいに)

    後者であれば、リソースとしてプロジェクトに含めている&実行ファイルに含めるような設定にしていることが問題です。
    プロジェクトから外す、あるいは実行ファイルに含めないように見直してください。
記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/

■62484  Re[2]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ ポコニャン! -(2011/10/13(Thu) 22:34:50)
    Azulean 様 ありがとうございます。

    > exe にファイルを埋め込みたいのですか?
    こちらの仕様にしたいです。
    EXEだけで余分なものはいらないということです。

    一応書き方としては、下記のようなコードです。
    Byte[] data = Properties.Resource.hoge;
    using (System.IO.Stream st = System.IO.File.Open(@textBox.Text + "\\hoge.lzh", System.IO.FileMode.Create))
    {
    using System.IO.BinaryWriter bw = new System.IO.BinaryWriter(st))
    {
    bw.Write(data);
    }

    たぶんおっしゃっていただいていることと同じように書いているつもりではありましたが・・・
記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/

■62490  Re[3]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ ゼロワン -(2011/10/14(Fri) 13:29:52)
    2011/10/14(Fri) 13:49:10 編集(投稿者)

    No62484 (ポコニャン! さん) に返信

    > Byte[] data = Properties.Resource.hoge;

    上記の行で例外が発生するのですか?

    > bw.Write(data);

    それとも、上記の行で例外が発生するのですか?

    他の行のエラーだったら、リソースとは関係ないんじゃないですか?
    (例えば出力するファイルのパスが無効、パスへのアクセス権限がない、等)

    どんなエラーが出ているか分からなければ、このスレッドの閲覧者はアドバイスのしようがありません。
記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/

■62487  Re[1]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ Azulean -(2011/10/14(Fri) 00:48:56)
    No62480 (ポコニャン! さん) に返信
    > プログラムの中でリソースファイルの取り出しもしているのでEXEだけで動かすとエラーになります。

    聞くのを忘れてました。
    このエラーって何ですか。具体的にしてください。
記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/

■62493  Re[1]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ shu -(2011/10/14(Fri) 13:48:05)
    No62480 (ポコニャン! さん) に返信

    配布用のEXE単体を実行環境にコピーして動作するのを確認したときにエラーが出たということでしょうか?
    それともVisualStudioから実行するのにResourcesフォルダに保存されたファイルを削除してVisualStudio上で
    実行したときにエラーが発生したということでしょうか?後者の場合、Exeに埋め込むファイルがないのでビルド中に
    エラーが発生します。


    >プログラムの中でリソースファイルの取り出しもしているのでEXEだけで動かすとエラーになります。
    外部リソースから読み込んでいるのならそうかもしれませんが埋め込みリソースから読み込んでいるのなら
    外部ファイルは関係ないです。

記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/

■62587  Re[2]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ ポコニャン! -(2011/10/19(Wed) 22:39:26)
    ご回答いただいた皆様返信が遅くなりすみません。

    今実行環境に触れなくてエラーがうろ覚えで大変申し訳ありませんが・・・

    例外が発生しました。
    ○○がハンドルできませんでした。

    このようなメッセージだったと思います。

    >配布用のEXE単体を実行環境にコピーして動作するのを確認したときにエラーが出たということでしょうか?
    そういうことになります。

    ちなみに参照設定で、「ionic.zip.dll」というのも使ってみていますが、こちらのDLLもビルドした際EXEに含まれないので
    それごとないとエラーになってしまいます。

    このへんは、どうしようもないものでしょうか?
記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/

■62588  Re[3]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ Azulean -(2011/10/20(Thu) 00:52:27)
    No62587 (ポコニャン! さん) に返信
    > 例外が発生しました。
    > ○○がハンドルできませんでした。
    >
    > このようなメッセージだったと思います。

    その○○の部分や、付随する補足メッセージが重要です。
    それがなければ、厳しい言い方になりますが、意味がありません。

    > ちなみに参照設定で、「ionic.zip.dll」というのも使ってみていますが、こちらのDLLもビルドした際EXEに含まれないので
    > それごとないとエラーになってしまいます。

    参照するということは、その DLL を使うと言うことです。
    .NET Framework 標準であれば、.NET Framework をインストールするだけで済みますが、それ以外の DLL を参照したなら、それが必要となるのは必然です。

    もし、EXE 単体配布にこだわっているのであれば、その考え方はもうやめた方がよいでしょう。
    .NET Framework が必要な時点で、EXE 単体で動くともいえませんし。
記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/

■62596  Re[3]: リソースファイルの管理でファイルサイズは2倍?
□投稿者/ ゼロワン -(2011/10/20(Thu) 13:59:30)
    No62587 (ポコニャン! さん) に返信

    > ちなみに参照設定で、「ionic.zip.dll」というのも使ってみていますが、こちらのDLLもビルドした際EXEに含まれないので
    > それごとないとエラーになってしまいます。

    exeファイルのみ配布したいのだと思いますが、それはなぜでしょうか?
    その理由が分かれば、代替策も出てくるのではないかと思います。

    Azuleanさんも指摘のように、exeだけのアプリを作成したとしても、
    適切な.NET Frameworkがインストールされていない環境では動作させることもできません。
記事No.62480 のレス /過去ログ105より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -