debug版とrelease版のアイコンが異なる

解決


yTake  2018-01-14 02:12:24  No: 48931

yTakeです。
DELPHIのビルド構成で”debug”と”release”があると思います。
アプリケーションアイコン用に画像を設定しました。
debugで生成されたexeファイルのアイコンとreleaseで生成されたexeファイルのアイコンが異なっています。
”プロジェクト”メニューから”オプション”を選択し、項目”アプリケーション”でアイコンを読み込めんだ後、各々のビルド構成でメイクするだけだと思います。
しかしながら、debugの方は読み込まれた正しいアイコンで表示されていますが、releaseの方はデフォルトのアイコンで表示されています。

各々のexeファイルをプロパティを参照してみましたが、プロパティ上のアイコン画像との相違はありません。表示上の問題ではなさそうです。

以前、自作のアイコンを設定した時には、上記手順で問題なくdebug、release共に読み込んだアイコンが反映していました。
以前との違いが分かりません。

確認すべき点などアドバイス頂けるでしょうか?


yTake  2018-01-14 02:13:43  No: 48932

yTakeです。

当方、
32ビットWindows10
DELPHI XE6

です。


通りすがり  2018-01-14 02:49:55  No: 48933

> ”プロジェクト”メニューから”オプション”を選択し、項目”アプリケーション”でアイコンを読み込めんだ後、
このとき右上のターゲットを全ての構成-32ビットWindowsプラットフォームにしていますか?
またうまくいかないときは.dprojファイルをエディタで開いてIcon_MainIconという要素を検索してみてください。
ビルド設定毎に違うファイルが指定されていたら、不要なものを削除することでうまくいくようになるかと思います。


yTake  2018-01-14 03:38:52  No: 48934

通りすがり様
早速、ありがとうございます。

右上のプロジェクトマネージャではビルド構成でreleaseがアクティブ、ターゲットプラットフォームで32ビットWindowsがアクティブ、になっています。

.dprojファイルはテキストファイルなのですね。

エディタで開いてみました。"Icon_MainIcon"の行が2か所で見つかりましたが、各々で違うファイルが指定されていました。

ビルド設定の区別が分かり難かったが、両者を同じににしてメイクしました。
するとエラーとなり、.vrcファイル内で"MAINICON ICON "("Icon_MainIcon"ではありません)で参照しているファイルが見つからないと言うものでした。
ここで参照されていたファイルは、編集した際のファイルと同じではありますが、存在しないパス(途中までは正しい)ですし、そもそもそのファイルは
そこには存在しません。

そこで、"MAINICON ICON "に正しい古パスを設定しました。

これでエラーなくメイク出来ましたが、依然として、アイコンが設定したものと異なっています。

また、.projファイル内で、編集した内容が勝手変わっていました。
修正した個所の直前に”(BSD)”が何故か付加されていました。

ご教授の通りにやってみたつもりですが、何か違っていましたらご指摘下さい。


yTake  2018-01-14 04:23:19  No: 48935

yTakeです。

前述に二カ所誤りがありました。

1)古パス−>フルパス
2)(BSD)−>$(BSD)

.dprojファイルはXML書式なんでしょうか?

関係すると思われる個所の前後を引用してみます。
vvvvvvvvvvvvvvvvvvvvvvv
    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
        <Cfg_1>true</Cfg_1>
        <CfgParent>Base</CfgParent>
        <Base>true</Base>
    </PropertyGroup>
    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
        <Cfg_1_Win32>true</Cfg_1_Win32>
        <CfgParent>Cfg_1</CfgParent>
        <Cfg_1>true</Cfg_1>
        <Base>true</Base>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
        <Cfg_2>true</Cfg_2>
        <CfgParent>Base</CfgParent>
        <Base>true</Base>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Base)'!=''">
        <SanitizedProjectName>Prp_Analysis</SanitizedProjectName>
        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
        <Icon_MainIcon>$(BDS)Prp_Analysis_Icon6.ico</Icon_MainIcon>
        <DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
        <DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
        <DCC_E>false</DCC_E>
        <DCC_N>false</DCC_N>
        <DCC_S>false</DCC_S>
        <DCC_F>false</DCC_F>
        <DCC_K>false</DCC_K>
    </PropertyGroup>
^^^^^^^^^^^^^^^^^^^^^^^
上記の"Icon_MainIcon"の行でタグの間に"Prp_Analysis_Icon6.ico"を入力しましたが、何故か"$(BSD)"が頭に付加されています。

vvvvvvvvvvvvvvvvvvvvvvv
    <PropertyGroup Condition="'$(Cfg_1)'!=''">
        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
        <DCC_DebugDCUs>true</DCC_DebugDCUs>
        <DCC_Optimize>false</DCC_Optimize>
        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
        <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
        <DCC_RemoteDebug>true</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
        <Icon_MainIcon>Prp_Analysis_Icon6.ico</Icon_MainIcon>
        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
        <VerInfo_Locale>1033</VerInfo_Locale>
        <DCC_RemoteDebug>false</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_2)'!=''">
        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
        <DCC_DebugInformation>0</DCC_DebugInformation>
    </PropertyGroup>
^^^^^^^^^^^^^^^^^^^^^^^
こちらの"Icon_MainIcon"のタグでは"$(BSD)"は付加されていません。

XMLに詳しくないので修正が間違っていると思われます。

アドバイス頂ければと思います。


通りすがり  2018-01-14 05:30:09  No: 48936

dprojファイルはXML形式です。

まずdprojファイルをエディタで開いてIcon_MainIcon要素を全部削除してください。次にDelphiのIDEで
プロジェクトを開いて、プロジェクトオプションを開いて、右上のターゲットを全ての構成-32ビットWindows
プラットフォームにして、それから左側のツリーでアプリケーションを選択してアプリケーションアイコンを
指定して、OKとしてください。これでDebugとReleaseそれぞれでビルドすればOKなはずです。


yTake  2018-01-14 16:59:08  No: 48937

通りすがりさん、
ありがとうございました。

ご指摘の通りに、.dprojファイルの"Icon_NainIcon"の項を全て削除し、
ターゲットを確認し、アイコンを読み込んでからOKしてから、DebugとReleaseをビルドしてみました。

Debug、Release共に設定したアイコンでexeファイルが生成されました。

ありがとうございました。

これまでに、.dprojファイルを編集した事はないのですが、何故かその内容に不整合が生じていたのでしょうね。


Mr.XRAY  2018-01-14 21:18:06  No: 48938

.dprojファイルを編集操作して解決するのであれば,以下のように,
プロジェクト関係のファイルを最小限にして再構築する方法もありかも知れません.
既に解決済みですので,質問された方には関係ないですが.

http://mrxray.on.coocan.jp/Delphi/Others/Delphi_Versionl.htm#fig1


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加