0

ディレクトリにたくさんのpng画像があります。新しい場合は、コンテンツ/コピーとしてプロジェクトに追加しました。問題なくアプリから読み込めます。

ただし、プロジェクトのコンパイルには多くの時間が必要です。コードを少し変更すると、プロジェクトはすべて再コンパイルされます。時間がかかります。

別のプロジェクトを追加しようとしましたが、ファイルを新しいプロジェクトに追加しましたが、アプリからファイルにアクセスできません。

解決策はありますか?

もちろん、アプリを iPad にデバッグすると、アップロードとインストールに時間がかかります。これらのファイルは決して変更されないので...すべてのコンテンツを一度にコピーする方法はありますか?

ありがとう

4

3 に答える 3

1

私はちょうどトリックを発見しました。MonoDevelop 環境からアップロードしてインストールする場合、monotouch はディレクトリを削除しないようです。

  1. フォルダーとすべてのファイルを追加し、コンテンツとしてマークします
  2. iPhone/iPad 用のプロジェクトをビルドし、MonoDevelop から実行します
  3. プロジェクトからデータフォルダーを削除します
  4. 溶液をきれいにする
  5. コードに必要な変更を加えると、データがデバイスに残ります!!!

それはすべてを変えます!!! その前に、コードに小さな変更を加える必要がある場合、ビルドとアップロードに約 15 フィート待つ必要がありました。たったの1分です!!!

于 2013-02-04T09:11:55.597 に答える
0
  1. 別のクラスライブラリに画像を配置します
  2. すべてのファイルを埋め込みリソースとしてマークします
  3. (プロジェクトファイル内の)各リソースに論理名を追加します
<EmbeddedResource Include="Images\Folder\Filename.ext">
    <LogicalName>LogicalNameForImage</LogicalName>
</EmbeddedResource>

4.リソースを次のようにロードします

UIImage.FromResource(yourAssembly, "LogicalNameForImage"); 

組み込みリソースは、アセンブリのロード時ではなく、オンデマンドでロードされます。

于 2013-02-04T00:50:47.933 に答える
0

MonoDevelop の将来のバージョン (私のパッチは次の 4.0 リリースに間に合いませんでした) では、これはもはや問題にはなりません。

MonoDevelop 3.x で現在起こっていることは、プロジェクトをビルドするときに、変更されたイメージのみをアプリ バンドルにコピーすることですがiphone-optimizeビルド後、MonoDevelop は、アプリ全体をスキャンするXcode と共にインストールされたスクリプトを呼び出します。ディレクトリに移動しpngcrush、すべての画像を圧縮するために使用します (すべての plist ファイルもバイナリ plist に変換します)。これは、大量の画像がある場合にビルド時間が非常に遅くなる原因となるステップです。

QAing のために 4.0 ブランチが閉鎖された直後に、iphone-optimizeスクリプトを呼び出す必要がないようにするパッチを作成しました。代わりに、MonoDevelop が行うことは、変更された画像のみpngcrushを直接呼び出し、適切なアプリ ディレクトリの場所を出力引数として渡し、追加のファイル コピーを回避することです。pngcrush

私自身のテストによると、これにより、多数のイメージ ファイルを含むプロジェクトのビルド時間が大幅に改善されます。

それまでの間、スクリプトのバックアップを作成し( の下のどこiphone-optimizeかにあるはずです/Applications/Xcode.app)、画像ファイルを破壊しないように変更します。次に、それが完了したら、プロジェクト内のすべての png ファイルを事前に圧縮します。

(注:私のパッチを含むMonoDevelopが最終的に出荷されると、すでに画像を事前に圧縮している開発者のためにpngcrushの呼び出しを無効にするオプションもあります).

于 2013-02-05T14:15:19.537 に答える