2017-09-13 31 views
0

當我嘗試在IDE中構建一些DPK時,它會正確編譯並生成合適的BPL,但是當我嘗試使用命令行執行此操作時,使用Delphi 10.2東京然後我得到這樣的錯誤:如何停止Final Builder 8使用Delphi 10.2銷燬rc文件東京

... .RC(14):錯誤RC2132:預期值,塊或END關鍵字

我發現,編譯之前該RC文件看起來像:

1 VERSIONINFO 
FILEVERSION 1,0,0,0 
PRODUCTVERSION 1,0,0,0 
FILEFLAGSMASK 0x3FL 
FILEFLAGS 0x00L 
FILEOS 0x40004L 
FILETYPE 0x1L 
FILESUBTYPE 0x00L 
BEGIN 
    BLOCK "StringFileInfo" 
    BEGIN 
     BLOCK "040904E4" 
     BEGIN 
       VALUE "FileVersion", "1.0.0.0\0" 
       VALUE "ProductVersion", "1.0.0.0\0" 
     END 
    END 
    BLOCK "VarFileInfo" 
    BEGIN 
     VALUE "Translation", 0x0409, 1252 
    END 
END 

但構建失敗後嘗試德爾福改變成:

1 VERSIONINFO 
FILEVERSION 1,0,0,0 
PRODUCTVERSION 1,0,0,0 
FILEFLAGSMASK 0x3FL 
FILEFLAGS 0x00L 
FILEOS 0x40004L 
FILETYPE 0x1L 
FILESUBTYPE 0x00L 
BEGIN 
    BLOCK "StringFileInfo" 
    BEGIN 
     BLOCK "040904E4" 
     BEGIN 

所以,由於某種原因,德爾福試圖覆蓋RC文件,但在中途停止,比無法解析它。

這種奇怪行爲的原因是什麼?

PS:這是在創建DPK項目時由Delphi IDE生成的標準RC文件。我沒有做任何改變。

我已經嘗試刪除它並使用IDE重新創建。

我無法告訴你哪個命令是用來產生BPL因爲我用的FinalBuilder 8做

+1

你能解釋一下你的rc文件在構建中扮演的角色嗎?你的項目中引用了哪些內容?你如何使用命令行。等等,總之,細節。我們如何重現這一點? –

+0

我已更新問題 – Gilmor

+2

這看起來像是一個最終生成器問題。聯繫他們尋求支持。除非有所更改,否則IDE不會在項目目錄中創建一個rc文件。這聽起來像最終的建設者。 –

回答

1

這最有可能與默認版本信息變量的一個問題東京設置 - 見Delphi Version Info Errors

+1

順便說一下,我們在最近的更新中改進了圍繞此問題的錯誤處理,因此它贏得了寫出一個不完整的rc文件,而是用變量引用報告錯誤。 –

+0

謝謝@VincentParrett。 FinalBuilder本身將來會解決嗎? 我在問,因爲根據您博客的解決方案:手動更正所有dproj文件會有點煩人,在最終生成器中添加ModuleName變量並不能解決所有錯誤,因此我不能讓Final Builder完全處理它,因爲在我的大部分組件中都沒有.res文件。 IDE通常在編譯時生成它。如果我在FinalBuilder中禁用從dproj加載版本信息,那麼我在編譯時遇到錯誤,說沒有res文件 – Gilmor

+0

delphi IDE通常爲項目生成一個projectname.res文件,這是我們的文件建立時重新生成(重新生成資源選項)。 這是不可能的自動解決這個問題,因爲我們沒有辦法解決這些變量,他們不存儲在德爾福以外的任何地方。 –

2

感謝@DavidHeffernan評論,我檢查了一次,它原來的問題是通過Final Builder重新生成資源文件。

當我在最終生成器動作中取消選中「版本信息」和「重新生成資源」時,一切正常。

現在我不知道究竟是什麼在最終生成器導致此問題,但禁用這些選項做這項工作對我來說

enter image description here

+0

好吧,當然我會向作者提交一個關於此問題的錯誤報告。 – Victoria

+1

我會的,但一些項目編譯正確,所以起初我必須弄清楚究竟是什麼產生了這些問題,然後我將它發佈給作者 – Gilmor