2012-03-18 20 views
21

誤ってそのプロジェクトをアップグレードせずに、特定のプロジェクトを開くために使用するデルファイのバージョン(コンピュータにインストールされているDelphi 5からXE2)を自動的に把握しようとしています。Delphiプロジェクトを作成したDelphiのバージョンを確認する方法

Delphi 7まで。各プロジェクトの.ini形式の.dofファイルがあります。 デルファイ5は役立つかもしれない任意のエントリを有するが、以下の値contains [ファイルバージョン]セクションがあるデルファイ6から起動しないん

  • デルファイ5:N/
  • デルファイ6:6.0
  • デルファイ7:7.0

だから私はそれが古いDelphiのバージョンは私には関係ないので、ということ落ち着くと思います。デルファイ2005年と2006年については

バージョンのエントリを含むXML形式の.bdsprojファイルがあります: デルファイ2005年BorlandProject \ PersonalityInfo \オプション\オプション

\それは次のようになります。

<Option Name="Version" Type="String">1.0</Option>

このようなデルファイ2006年

<Option Name="Version">1.0</Option>

属性 "Type"が存在し、Delphi 2005または2006を決定するかどうかを調べることができます。 誰かがDelphi 2005および2006プロジェクトを見て、この違いを確認できますか?

編集:私はちょうどこれを検証しようとしましたが、そのDelphi 2005では常にタイプ属性が追加されるとは限りません。だから今私は立ち往生している。

編集:おそらく、そこに保存されたGUIDはDelphiのバージョンに固有ですか?

  • デルファイ2005:{87D03616-A4C7-4B5A-AF0F-0164EA60BC59}
  • デルファイ2006:{CFE1BEE6-6FDE-4241-8CA5-D38D14EAA768}

どういうわけか私は私は、それを疑いますGUIDが異なるSKU(Professional/Architectなど)を表す可能性があることを恐れている。しかし、おそらくあなたはこれを確認することができますか?

Delphi 2007以降、別のXML形式の.dprojファイルがあります。デルファイ2007形式は、私が見つけることができるすべてのバージョンのエントリが含まれていますが、上のDelphi 2009から次のエントリがあるように思われていません。

\project\PropertyGroup\ProjectVersion

これらは私が私の.dprojファイルで見つかった値は次のとおりです。

  • デルファイ2007:N/
  • デルファイ2009:2010 12.0
  • デルファイ:12。0
  • デルファイXE:12.3
  • デルファイXE2:13.4

これらが正しい場合、私は確実にデルファイ2007、XEとXE2を決定することができます。しかし、私はどのようにDelphi 2009と2010を区別しますか?

また、これらの数字は私にとって奇妙に見えます。 Delphiのさまざまなアップデート間に違いがあるかどうかは誰にでも分かりますか?元のDelphi XE2リリースは13.0から始まり、各アップデートでドットの後ろの数字が増えましたか?しかし、その場合、Delphi XEはどのように12.3を取得しましたか?

(。同様の質問How can I tell what version of Delphi was used to create a projectが、かなり限られている単一の答えがあります)

誰がこれを必要とする念のために:私はすべての答えを要約し、新しいDelphiのバージョンの情報を追加してpage to the Delphi Wikiを追加しました(現在Delphi 10.1まで)。

+0

あなたがこれを必要とするのはなぜ? Delphiのどのバージョンのプロジェクトがビルドされているのかが分かります。 –

+0

@DavidHeffernan下記の私の答えを参照してください。 – dummzeuch

+0

私は、特定のプロジェクトファイルのターゲットデルファイバージョンを明確に識別するための簡単な命名規則に従うことをお勧めします。例えば。私たちはプロジェクトファイルをサブフォルダに入れます。フォルダ名は、使用するDelphiのバージョンを示します。 –

答えて

5

* PROJファイルのバージョン番号は、リリースまたはアップデートに限定されず、すべてのバージョンが通りに当たるわけではありません。

  • デルファイXE RTMは
  • デルファイXE更新#1が12.3
  • デルファイXE2(RTM更新まで#4)私は今比較した13.4
10

を使用するバージョンを使用して、バージョン12.2を使用しました.bdsprojファイルはDelphi 2005と2006の違いはありません。また、だから、答えは

のDelphi 2009で作成された.dprojファイル間と2010違いはありません。

  • .dprojファイルが存在する場合は - > \プロジェクトを読み込む\ PropertyGroup \ ProjectVersion
    • 空 - >デルファイ2007
    • 12.0 - >デルファイ2009または2010
    • 12.2または12.3 - >デルファイXE1(ウーヴェシュスターに従って)
    • 13.4 - >デルファイXE2
  • .bdsprojファイルが存在する場合 - >デルファイ2005または2006
  • を.dofファイルが存在する場合 - >読む[ファイルバージョン] \バージョン
    • 空 - >デルファイ5(または多分古い)
    • 6.0 - >デルファイ6
    • 7.0 - >デルファイ7

残念ながら、これは私が書くことはできません。特定のプロジェクトに対して正しいDelphiバージョンを自動的に開始するプログラム。

2つの可能性があるかどうかをユーザーに聞かせて、その答えを.iniファイルに保存するようにして、次回にどのDelphiバージョンを起動するのかを知ることができます。

btw:私がこれを検討していた理由は、誤ってDelphi 2007プロジェクトをそれ以降のDelphiバージョンで開いていて、手作業でこれらの変更を取り消さなければならなかったからです。これは私のプログラムを.dprファイル用のハンドラとして登録することによってそれを防止したいと迷惑になってきました。

+2

変更を手作業で元に戻す場合は、リビジョンコントロール –

+1

@DavidHeffernanを使用する必要があります。「手作業」では、ファイルをクリックし、TortoiseSVNで元に戻すことを選択しました。これは実際にファイルを編集するのと同じくらい難しいことではありませんが、まだ迷惑です。 Btw:私は今、正しいideで開くバッチファイルをプロジェクトに追加することで問題を解決しました。 – dummzeuch

+0

ユニット検索パスは、プロジェクトがどのコンパイラバージョンにリンクされているかのヒントを提供します。 – bvj

4

XE3(RTM)がインストールされました。 14.3 XE3(C++ & Delphi)

+1

14.4:XE4および15.1:XE5 –

+0

15.3:XE5(更新2); 16.0:XE7 – Martijn

3

今日、デルファイ版(Standard、Professional、Enterprise)に関するこのトピックgooglinが見つかりました。

とにかく、私は私のマシンに広がるいくつかの.dofのファイルをチェックし、古代のDelphiのバージョンに関連した事実がある:

.dofファイルが存在する場合 - >読む[ディレクトリ] /パッケージ

デルファイ3

追加情報は、することができ
[Directories] 
OutputDir= 
UnitOutputDir= 
SearchPath= 
Packages=VCLX30;VCL30;INETDB30;INET30; 

デルファイ5

[Directories] 
OutputDir=. 
UnitOutputDir=. 
PackageDLLOutputDir=. 
PackageDCPOutputDir=. 
SearchPath= 
Packages=Vcl50;Inet50;Inetdb50;Vclx50;Indy50; 

DOFファイルの終わり近くfinded:

D3:

[Excluded Packages] 
C:\Program Files\Borland\Delphi 3\Bin\DCLDSS30.dpl=Delphi Decision Cube Components 
C:\PROGRAM FILES\BORLAND\DELPHI 3\BIN\DCLTEE30.DPL=Delphi TeeChart Components 

はD5:

[Excluded Packages] 
$(DELPHI)\Bin\CorIde50.bpl=Borland Core IDE Package 
$(DELPHI)\Bin\direct50.bpl=Borland Direct IDE Package 
関連する問題