簡體   English   中英

什么是.vrc文件,如何生成,是否可以使用IDE將其刪除?

[英]What Is a .vrc file, how is is generated and can you remove it using the IDE?

我正在嘗試安裝一個名為JamShellBrowser的商業組件,但它不會安裝。

我聯系了開發人員,但同時我想知道:

  1. 什么是vrc文件?
  2. 它是如何產生的?
  3. 可以使用Delphi XE4 IDE進行控制或修改嗎?

我檢查了IDE的幫助,但是我找不到任何關於vrc文件的內容,我搜索了Delphi vrc並沒有找到任何可以幫助我的東西。

錯誤消息是:

檢查項目依賴性......

編譯JamShellDelphiXE4.dproj(Release,Win32)

“JamShellDelphiXE4.vrc”的brcc32命令行

c:\\ program files(x86)\\ embarcadero \\ rad studio \\ 11.0 \\ bin \\ cgrc.exe -c65001 JamShellDelphiXE4.vrc -foJamShellDelphiXE4.res

[BRCC32錯誤] JamShellDelphiXE4.vrc(2):找不到文件:JamShellDelphiXE2_Icon.ico

失敗

經過時間:00:00:00.1

我搜索組件文件夾中的ico文件,但沒有...因此消息,但即使我從vrc文件中刪除MAINICON ICON "JamShellDelphiXE2_Icon.ico"行甚至刪除vrc文件時它會自動生成我嘗試安裝。

幾個月前我從Delphi 2010轉移到了XE4並注意到了新的vrc文件,但我不知道它是什么或如何處理這些文件。

.vrc是由Delphi MSBuild進程創建的臨時文件,用於編譯將在最終二進制輸出中鏈接的資源文件(.res)。 它傳遞給CodeGear Resource Compiler / Binder (cgrc.exe)並在構建過程后刪除。

它不會出現在.dproj文件中的任何位置。 此行為來自BuildVersionResource目標,從$(BDS)\\Bin\\CodeGear.Common.Targets導入。 如果您想更好地了解構建過程,請查看此文件(以及CodeGear.Delphi.Targets )。

從.dproj中刪除<Icon_MainIcon>標簽是不夠的,因為VERSIONINFO資源也可以強制創建.vrc文件(我相信“vrc”代表“Version Resource”,盡管它也用於應用程序中的主圖標)。

在包的情況下,Delphi總是將版本信息放在包項目中。 包項目忽略“包含版本信息”IDE選項。

所以,如果你(像我一樣)

  • 不要依賴Delphi IDE來設置應用程序主圖標
  • 不依賴Delphi IDE來設置版本信息資源;
  • 管理包括您自己的資源文件的一切

你可以通過設置完全禁用其創作SkipResGenerationtrue在你的MSBuild調用。 例如:

msbuild.exe myProject /t:Build /p:Config=Release /p:SkipResGeneration=true

但是,這僅適用於基於MSBuild的構建。 我不知道如何為Delphi IDE的構建做同樣的事情。

我相信這是Delphi XE4和XE5的內置IDE行為,可能是由升級錯誤引起的。 生成VRC文件是您無法禁用的,除非刪除dproj文件中導致生成它的標記。

如果有辦法解決它或刪除它,它可能涉及將您的dproj文件與另一個dproj文件進行比較,並查找僅適用於.dpr + .dproj項目的內容,該項目以某種方式進入您的.dpk + .dproj項目,如<Icon_MainIcon>

它似乎是一個中間文件,當.dpr + .dproj項目有一些版本信息必須從.dproj文件寫入一個臨時位置然后編譯並作為版本鏈接到您的應用程序時自動生成信息資源。 但是,我也看到它是為.dpk + .dproj項目生成的,這也讓我感到困惑。

它似乎還包含您的默認應用程序圖標和版本信息的資源,並且包通常不具有versioninfo或應用程序圖標資源。

我發現可能是一個BUG是Delphi IDE中沒有用於設置包的應用程序圖標的UI。 然而,我有時會獲得.VRC和.ICO文件。 但除了將問題報告給Embarcadero Quality Central之外,我不知道有什么問題。

使用.dproj項目,.VRC中間文件至少有一定意義。 我看到以下內容:版本信息,應用程序圖標和VCL樣式(即AquaLightSlate.vsf)資源鏈接。

只需在任何文本編輯器文件中打開@ PROJECT @ .dproj並查找行

<Icon_MainIcon>@PROJECT@_Icon.ico</Icon_MainIcon>

並刪除它們。 您將找到每個Build目標一個。 保存文件,你就完成了。

編輯:原始答案引用.dpr文件,但是請注意要編輯的部分在.dproj中,因此我更新了上面的答案以反映這一點。

這是澄清......

我剛剛開始在Delphi RAD Studio XE5中安裝了幾個組件庫,我已經在XE2XE4中安裝了 當我嘗試構建大部分內容時,我得到同樣的錯誤。

The problem isn't so much the .vrc file itself, it's this particular error:

[BRCC32 Error] <project_name>.vrc(2): file not found: <project_name>_Icon.ico

我無法找到繞過它的方法,我不知道它在尋找什么或在哪里。

我傾向於將我的組件庫從一個版本復制到另一個版本,打開它們,構建它們並安裝它們(即那些不帶安裝程序的版本)。 我以前從未見過這種情況。 但是,這是我第一次安裝RAD Studio ; 在過去我剛剛有德爾福 那么也許它與安裝C++

我不得不更改我的X.optset文件以使其工作。 X是您從這些選項中帶來的Delphi版本的名稱。 我的是PolyDelphiXE2.optset。 一旦我在這里更正了名稱,就不再有趣的編譯帶來了不同的ico參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM