• 締切済み

実行ファイルにファイルを埋め込む

お世話になります。 指定した条件に該当するデータを検索するアプリケーションを開発しています。その後、検索結果をファイル化します。このファイルの内容を参照するビューワを別途アプリケーションとしても開発しています。 ここで疑問なのですが、ファイルをそのビューワに埋め込むことができれば便利じゃないのかなと思いました。ただそれを実現する方法がわからないのでご存知の方がいれば教えていただけないでしょうか? 開発環境はVisualStudio2005で言語はC#、OSはWindows XP SP2です。 よろしくお願いします。

みんなの回答

回答No.3

端末がLAN内にあれば、自分ならWebアプリケーションにしたくなりますね。 それならアプリケーションのインストールは不要ですから。 でもリムーバルなメディアには入れられませんし、 ページを簡単に保存できてしまうので使用期限を設けるのは難しそうとかいろいろ問題はありますね。 「アクセス期限」なら簡単でしょうけれど。 それに、すでにC#で開発をすすめられているのであれば、いまさら方針転換も難しいでしょうしね。 となると、やっぱりSDKをインストールしてcsc.exeを使うのが 自分が思いつく限りでは無難かと思います。 ビューワはモジュールとしてコンパイルしておきます。 検索アプリケーションはビューワと検索結果のファイルを cscのそれぞれaddmoduleオプションとresourceオプションで追加すして ビルドすればいいでしょうね。 昔は美人であったかもしれないかたたちが相手ではたいへんでしょう。 がんばってくださいね。

tonytonychopper
質問者

お礼

私個人で作ってるシステムじゃありませんし、言語や実行環境も既に決まっているパッケージなのでなかなか思うようには・・・ せっかくいいアイデアを頂いたのですがSDKを導入ことさえ「えっ?」というメンバーしか回りにはいないなど、ユーザーよりもこちら側の問題から回避しないといけない雰囲気がーー; いろいろがんばってみます。 ありがとうございました。

回答No.2

>参照する端末にアプリをインストールしない とのことですが、ビューワをC#で開発するのであれば端末に.NET Frameworkのインストールが必要になるかと思います。 端末はすべて.NET Frameworkがすでにインストールされているものとしてよろしいでしょうか? それとも、ビューワはWindowsネイティブで開発するとか? >実行環境にはコンパイラをインストールしていない 検索アプリケーションを実行する環境に同時に.NET Framework SDKのインストールを要求できるのであれば、 そのコンパイラを利用して実現するのは難しくはなさそうです。それならば、 >出来れば実行ファイルは既にコンパイル済みで というのも実現可能でしょう。 ビューワと検索結果を同一ファイルで扱いたい理由ですが、理由1は質問そのままですし、 理由2はその検索結果ファイルに見せたくない個人情報が含まれていてそれを表示できる、というのは不思議です。 理由3は外部メディアにビューワと検索結果ファイルを一緒に入れておくのでは不都合な理由が思いつきません。 なかなか詳しい理由を答えられないやむを得ぬ事情がおありだと拝察しますが、 それがはっきりすればもしかしたらビューワにファイルを埋め込むのとはまったく異なる 使い勝手を向上する手段がほかに見つかるかも知れませんね。 余談ですが、Javaのアーカイブ形式であるJARファイルは、その実態がZipファイルであるため JARにファイルを追加するのは簡単です。Zipを扱う機能すら、標準でJavaに含まれています。 このようなことが.NET Frameworkアセンブリでもできるとよいのですが……。 以下は.NET FrameworkのMicrosoft実装における実行可能ファイルの仕様です。 191ページの"25 File format extensions to PE"あたりがその内容になるかと思います。 リンカ相当のプログラムを自力で書くなら必要になるかと思いますので、 付記しておきます。 http://download.microsoft.com/download/7/3/3/733AD403-90B2-4064-A81E-01035A7FE13C/MS%20Partition%20II.pdf

tonytonychopper
質問者

お礼

ビューワも.NET Frameworkがインストールされていることが必須です。 実行環境にSDKを導入すればよさそうなので試してみたいと思います。 もう少しお話すると、 1.検索結果を出力する端末はクローズされたLAN環境下にある。   顧客へメール送信する際には、インターネットが利用可能な端末   にUSBメモリなどの媒体で本人が持参しその情報を元にメール送信 2.検索結果はファイル出力すると暗号化 3.ビューワは起動と同時に通常使用するアプリケーションと同じ   ID/PASSWORDでログイン 3.暗号化および複合化にはID/PASSWORDをキーとして行うような   ロジックを採用し、間違ったものを入力した場合にはビューワ   側で複合化できないので結果は参照できない   かつ、使用期限も設定 4.ぶっちゃけ、使用するのはPCに不慣れで、昔は若くて美人であっ   たか可能性があるかもしれない方が多いのでファイルをいっぱい   作りたくない などなどですね。 それでも他によい手段があれば教えていただければと思います。

回答No.1

アプリケーションの実行ファイルになんらかのファイルを埋め込む場合、 実行ファイルのリンク時に一緒にリソースファイルをリンクすることで埋め込みます。 ご質問のケースに当てはめると、検索アプリケーションが検索結果のリソースファイルをリンクした ビューワの実行ファイルを生成することになるでしょうか? そもそもなぜそのファイルをビューワに埋め込むと便利だと思ったのでしょうか? ご質問の内容を読む限りでは、それによって使い勝手がそれほど変わるとは自分には思えません。 以下は.NET Framework SDKにおけるリソースファイルの取り扱いを示したチュートリアルです。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cptutorials/html/resources_and_localization_using_the__net_framework_sdk.asp

tonytonychopper
質問者

お礼

回答ありがとうございます。 出来れば実行ファイルは既にコンパイル済みで、と言いたいのですが難しいようですね。実行環境にはコンパイラをインストールしていないし。 使い勝手に関してはこちらにもいろいろ理由はあるのでツッコミいれらても困るのですが、いちおう回答すると 1.ビューワと検索結果を同一ファイルで扱いたい 2.そのファイルには個人情報もあるので簡単に内容を見えない   ようにしたい 3.検索結果をUSBなどリムーバルなメディアに出力して他端末で   参照するような運用も視野にいれている   参照する端末にアプリをインストールしない などなどあります。

関連するQ&A