2012-08-10 12 views
6

私はエラーを取得します行方不明 Delphi 7プロジェクトにはMAINICONとバージョン情報が格納された.Resファイルがあります。 Delphi XE2がこの.Resファイルを使用して、MAINICON &のバージョン情報を取得できないのはなぜですか?デルファイ7は

[BRCC32 Error] MtxReq.vrc(2): file not found: MtxReq_Icon.ico 

MTXReq.vrcファイル(新しいファイル)が作成され、MtxReq.resファイルが削除された - 私はXE2でアプリケーションをコンパイルしようとした場合

はまた、私はエラーを取得します。

どうしてですか? .resファイルから自分のプロジェクトアイコンとバージョン設定を失いたくはありません。

XE2に.resファイルを強制的に使用させ、削除しない方法がありますか?

ご協力いただきますようお願い申し上げます。


申し訳ありませんが、私は

ウォーレン ...(もっとrepotationポイントを必要とする)はまだコメントを投稿することができません - ここにあなたの質問にREPONSEが(ちょうどあなたの.dprojファイルを削除せず、 .dprのみを保持していた方が速いですか?)

.dproj、.dproj.localを削除しました。 .dprをXE2で開き、.dprojファイルを再作成しました。 .resからアイコンを戻しますが、プロジェクトのバージョン情報が失われました。ファイルバージョンと製品バージョン情報のみが移行されましたが、その他のバージョン情報はすべて失われました。 (これはデフォルトマニフェストファイルのためです)。 私は私の解決策のステップ1で説明したことを試しました。 メモ帳で.dprojファイルを開いて、タグエントリを削除して.dprojファイルを再度開いて、すべてのバージョン情報が復元されました。ここの問題は、$(BDS)\ bin \ default_app.manifestです。 また、バージョン情報が.dprojファイルのタグの下のタグに格納されていて、デフォルトのマニフェストエントリを削除すると、IDEはバージョンキー情報を正しく取得します。

基本的に.dprファイルを削除することで、プロジェクトに.icoファイルを抽出して追加するステップをスキップしましたが、新しく作成した.projファイルを編集して、デフォルトのマニフェストのエントリを削除してバージョン情報。 (別の解決策は、バージョン情報を追加してプロジェクトを保存することでした)私はこれを試しませんでした。

答えて

12

アップデート2015:手で慎重に.DPROJファイルを再作成するレミーのアイデアは、優れたアドバイスで、受け入れられた私の答えがマークされているにもかかわらず、最初に考慮しなければなりません。

XE2より前のDelphiのバージョンでは、リソースファイルがコンパイルプロセスでINPUTとOUTPUTとして使用されていました。例えば、あなたのdelphi 7のプロジェクトアイコンは.resファイルに埋め込まれています。このファイルはdelphi xe2で使えるようにしていますが、delphi 7では問題あり、XE2では不可能です。代わりに.resファイルを純粋な出力アーティファクトとして扱います。これは実行可能ファイルと同じです。 .resファイルをバージョンコントロールにチェックするのをやめてください。また、.resファイルがアイコンを永久に保存する場所であるとは思わないでください。それは常にそうであったはずのように、コンパイラによって自動的に生成される出力ファイルです。

あなたが現代的な開発者であれば、バージョン管理のために何をすべきかについて興味深く、解決できない質問があるので、Delphi 7の古い方法はあなたに迷惑をかけるかもしれません。ファイル、またはあなたですか?両方のアプローチに欠点がありました.RESファイルはXE2でのみ出力された成果物であるという事実が最高のものです。だからこそ生きることを学ぶ。

XE2はPC用だけでなくMac用のアイコンもサポートしていますので、XE2はさまざまなことを処理しなければならず、これをクリーンアップしました。これは.ICOファイルで見られる問題の起点です。私はまったく同じエラーを見てきました。私はそれを無視して、それが他の方法で変換された後、アイコンをプロジェクトに単に追加しました。

delphi 7プロジェクト(.dprと.cfg)をDelphi XE2に変換することは、さまざまなレベルの.dprojファイル間の変換(Delphi 2005,2007,2009,2010で始まる各バージョン) dproj形式の変更が実装されています。これらのプロジェクトの変換に問題が発生した場合、Remyが示唆するように私は時間の無駄ではありません。私がやることは、DPROJを削除して.dprファイルからのみ変換できるようにすることです。
しかし、最初からレミーのアドバイスを受けることには、プロジェクトレイアウトを単純化するなどの多くの利点があります。

とにかく、ここであなたは何をすべきかです:

  1. はエラーを無視します。
  2. 自分でプロジェクトにアイコンを追加します。
  3. .resファイルの削除については心配する必要はありません。それは意図的で、理由があるためです。必要に応じて新しいものが作成されます。ディスク上の.icoファイルのファイル名は、XE2 .dprojファイルの内容を使用して読み取られ、.resファイルにコンパイルされます。
3

いつものように、IDEはプロジェクトを古いバージョンから新しいバージョンに変換させてはいけません。 RARELY変換は正しく動作します。新しいIDEで新しいプロジェクトを作成し、必要に応じて既存のソースファイルを追加する必要があります。

+4

なぜそれを言うのですか?私はideがコンバージョンを行うことを何ら問題にしたことはありません。 – dummzeuch

+2

多くのユーザーに問題があるので、自分自身を幸運に考えてください。 Borland/CodeGear/Embarcaderoのフォーラムでは、プロジェクトのアップグレードに関する問題に関して長年にわたり多くの苦情/懸念事項が投稿されています。それは多くの場合正しく機能しません。 TeamBのほとんどのメンバー(私も含めて)はフォーラムのユーザーに何度も同じことを言います - 私がここで言ったのと同じことです。プロジェクトをアップグレードしないことが最善です。IDEが何を得るのか分かりません。代わりに新しいプロジェクトを作ります。 –

+4

私はこれらの問題を何度も見てきました。私は.dprと.dpkを削除することについてのみ同意します。私は、あなたが.dprojファイルを削除する必要があることを発見します。 '.dpr'と.cfgまたは.dofのアップグレードは、.dprojレベルから別の.dprojレベルへのアップグレードよりもずっとシームレスに機能します。 OPが言及している.icoファイルのエラーは、この一般的なトレンドのまれな反例です。しかし、エラーはほとんど無害です。単純に.resファイルに.resファイルを抽出できなかったため、手動で別の.icoファイルを挿入する必要があります。プレーンな.icoファイルがなくなったら、それは本当の苦痛です。 –

1

あなたのご意見とご提案はありがとうございます。

ステップ1:私は私の投稿を提出した後

は、私は問題を持ち越すの.ico問題と不足しているバージョンの問題/バージョン情報を解決するために、これらの手順を試してみました。 .dProjファイルを編集し、タグの下のdefault_app.manifest関連エントリへの参照を削除しました(私のプロジェクトプラットフォームは32ビットです) namespace System.Win; Data.Win; Datasnap.Win; Webに関連するこのexceptタグの下にあるすべてのタグを削除しましたこれがなければ、私のアプリケーションはバージョン情報を常に1.0.0.0として表示し、指定したものはすべて無視していました。

(私はこれが右のステップですが、それは私のバージョン情報の問題を解決している場合を確認していない。このため単純/別の解決策があるかもしれません...)

ステップ2からICOを抽出古い.resファイルに名前をつけ、.icoファイルをプロジェクトオプションからプロジェクトに追加しました。物理的に 。icoファイルはプロジェクトフォルダであり、ソース管理(私の場合はVSS)でチェックされます。

この2つのステップで私の必要なものを購入してから、バージョン番号を変更してプロジェクトをコンパイルできます。 この時点から問題はありません。

これらは私がD7からXE2に自分のアプリケーションのためにしなければならなかった総変換/移行よりもはるかに簡単だった - Unicode変換、などなどRaize 6、ターボパワー、仮想ツリービュー、Hypergridに合わせてカスタマイズRaize 5 componetsを移行します幸いなことに、これらのすべてのコンポーネントのXE2バージョンが見つかりました。

+0

.dprojファイルを削除して.dprのみを保持するだけでなく、高速化されましたか? –