11

XE から XE2 にプロジェクトを移行していますが、会社名、製品バージョンなど、手動で入力したバージョン情報が欠落していることに気付きました。単純な空の VCL フォーム アプリケーションを作成しています。 - たとえば、[リリース構成 - 32 ビット Windows プラットフォーム] を選択すると、[すべてのプラットフォーム] が消えます。情報を再入力してプラットフォームを通過できると思いますが、ここで何が起こっているのですか? 「すべての構成 - すべてのプラットフォーム」情報は、コンパイラ オプションなどと同じようにオーバーライドしない限り、すべてのプラットフォームに伝播すると予想されますが、何か不足していますか?

さらに注意 - さらに調査すると、「プロジェクト」の下にメニュー オプションを追加するDDevExtensionsを使用する回避策があることがわかりました。下部の [選択したものに適用] と [すべてのプラットフォームに VersionInfo を適用] のボックスをオンにすると、グループ内の他のプロジェクトに影響を与えることなく、表示されているバージョン情報をすべてのプラットフォームにコピーできます。

4

5 に答える 5

9

これはビルド #16.0.4429.46931 の問題です。しかし、プロジェクトの「dproj」ファイルを開きベース プロパティ グループ (<PropertyGroup Condition="'$(Base)'!=''" >)。これを行うと、「すべての構成 - すべてのプラットフォーム」のバージョン情報を、複製する必要なく、さまざまなビルドおよびプラットフォーム構成に継承できます。

于 2012-03-28T23:14:56.100 に答える
2

バージョン情報が上位レベルから下位レベルに伝播されない原因となる XE2 のバグのようです。この問題 (99428) で開いた QC は 11 月 7 日に終了し、「ビルド 16.0.4256.43595 で解決済み」とマークされました。

本番用 (XE2 に切り替えるとき) には、FinalBuilder を使用して正しいバージョン情報を取得しますが、IDE ビルドを FB からの実際のバージョン管理と一致させるために、できれば来月かそこらで修正を待ちます。 . しかし、それまでの間、修正パックを使用するというあなたの提案を試してみます...

于 2011-11-09T16:58:24.200 に答える
2

プロジェクト フォルダーの .djproj ファイルに複数のバージョン構成を配置するバージョン情報に「バグ」があると思います。

Delphi XE2 でターゲットを初めて開いたときに、ターゲットをすべての構成に変更しても問題ないようです。次に、ロードしたらターゲットをドロップダウンし、太字のエントリのみをクリックしてバージョン情報をコピーします。太字以外のエントリを誤ってクリックすると、テキストがデフォルトに設定され、.dsproj ファイルに永続化されます。

私は次のようにしてこれを修正しました。必要に応じて詳細を変更する必要があります。最初にファイルを確認することをお勧めします。通常、何が起こっているかは明らかです。

1) プロジェクトの .dsproj ファイルをコピーし、メモ帳でプロジェクトの .dsproj ファイルを開きます

2) 40 行目あたりで最初に出現する場所を見つけます。

3) このビットをコピーしてその上に貼り付けます。

<PropertyGroup Condition="'$(Base)'!=''">
                                            <DCC_ExeOutput>**c:\xxx**</DCC_ExeOutput>
                                            <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
                                            <VerInfo_Locale>2057</VerInfo_Locale>
                                            <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
                                            <VerInfo_AutoGenVersion>true</VerInfo_AutoGenVersion>
                                            <VerInfo_MinorVer>12</VerInfo_MinorVer>
                                            <Icon_MainIcon>**My_Icon.ico**</Icon_MainIcon>
                                            <VerInfo_Release>1</VerInfo_Release>
                                            <VerInfo_MajorVer>5</VerInfo_MajorVer><DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;Data.Win;System.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Keys>CompanyName=xxxxxxx;
FileDescription=**xxxxxxxx**;
FileVersion=5.12.1.0;
InternalName=;
LegalCopyright=2012 xxxxxx Services;LegalTrademarks=**xxxx**;
OriginalFilename=;
ProductName=**xxxx**;
ProductVersion=5.0;
Comments=</VerInfo_Keys>
</PropertyGroup>

4)スター付きのエントリをファイル内のさらに下の情報に置き換えます。アイコンが見つからない場合は、再度追加する必要がありますが、ほとんどのプロジェクトでは別の .ico としてフォルダーにあることがわかりました。

5) 次に、他のすべての元のプロパティ グループ エントリを次のように削除できます。

                            <ProjectExtensions>
                                            <Borland.Personality>Delphi.Personality.12</Borland.Personality>
                                            <Borland.ProjectType/>
                                            <BorlandProject>
于 2012-01-13T15:21:54.990 に答える
1

「この問題 (99428) で私が開いた QC は 11 月 7 日に終了し、「ビルド 16.0.4256.43595 で解決済み」とマークされました。

残念ながら、これは最新バージョン16.0.4358.45540の時点では修正されていません

以前のバージョンの Delphi からプロジェクトを移行すると、古い構成のコピーを含む「すべての構成」レベルでバージョン リソースが作成されます。これはいい。

それは完全に無視されます - これは本当に悪いことです。すべての実行可能ファイルが著作権および商標情報なしでビルドされていることに、テストのかなり遅い段階まで気がつきませんでした。単に無視されていたのです。

唯一の解決策は、上記のようにすべての dproj ファイルを手動で編集することです。本当にこれを修正するツールを書く人が必要です..かなり機械的で、時間があればいいのにと思います。

FinalBuilder は良さそうに聞こえますが、XE2 の開発者あたり 2,000 ドルに加えて、ライセンスに 3,500 ドルを支払うと、会計士は心臓発作を起こします...

于 2012-02-10T16:28:11.770 に答える
0

変換後に子ビルド構成のバージョン情報を削除するアプリケーションを作成しました...古いプロジェクトを開くと、それを閉じてツールを実行します。これにより、バージョン情報が適切に継承されるようになります (Update 4 ではこれが解決されません)。

于 2012-04-26T13:44:52.867 に答える