1

従来の.NETライブラリの上に構築されたアプリケーションでデプロイする必要のある(かなりの)静的ファイルがあります。これらには、いくつかのXMLファイルと構成ファイル、および数十メガバイトの読み取り専用データベースが含まれます。

私が見たほとんどのフォーラムは、これを達成するための最良の方法は、プロジェクトで必要なファイルを参照し、それらをコンテンツおよび「出力ディレクトリにコピー」に設定することであると示しています。

これを扱う2つの問題/質問があります:

  1. これらのファイルを追加して「コンテンツ」に設定すると、ファイルがコピーされるだけでなく、.dllにも埋め込まれるように見えます。言い換えれば、私は40MB相当のファイルと40MBのdllを持っています(このプロジェクトの唯一の目標はこれらのファイルをインポートすることであり、実質的なコードはありません)。 この非常に大きなdllが作成されないようにするにはどうすればよいですか?

  2. ファイルをAppBundleに取り込む別の方法はありますか?カスタムビルドコマンドを使用したいのですが、ファイルをターゲットディレクトリ$ {AppDirectory}にコピーできますが、これらのファイルがアプリバンドルに含まれることはありません。このアプローチは可能ですか?

どんな助けでも事前に感謝されます。

4

1 に答える 1

1

メインの.exeプロジェクトからファイルを含める必要があります。これを行うには、MonoDevelop のBuild Action to Contentを各ファイルで使用します。これらは、.dll (または .exe) 内に含めずに .app にコピーする必要があります。

別の方法 (開発用) は、iTunes 共有を使用してファイルを一度デバイスにコピーすることです。これにより、開発中の展開時間を大幅に短縮できます。

もちろん、そのようなビルドをアプリ ストアに送信することはできません (アプリケーションを機能させるためにファイルが必要ない場合を除きます)。私が (約 80MB の読み取り専用データベースに対して) 行っていることは、このハック(/Documents からの読み込み) を内部で使用すること#if DEBUGです。リリース ビルドは、通常の場所からファイルをロードします。

私はプロセスを自動化していません (まだアプリをデバッグしています ;-) が、これをスクリプト化できるはずなので、デバッグ ビルドとリリース ビルドから切り替えるときにプロジェクト オプションを (ファイルごとに) 変更する必要はありません。

于 2012-11-01T19:58:28.403 に答える