當我的一個表單被保存時,編輯器會自動添加System.Actions
單元。錯誤:未找到F1026文件:命令行編譯器中的'System.Actions.dcu'
它編譯沒有在IDE中的一個問題,但不幸的是命令行編譯器無法找到該文件,並給我的錯誤: Error: F1026 File not found: 'System.Actions.dcu'
我缺少什麼?
當我的一個表單被保存時,編輯器會自動添加System.Actions
單元。錯誤:未找到F1026文件:命令行編譯器中的'System.Actions.dcu'
它編譯沒有在IDE中的一個問題,但不幸的是命令行編譯器無法找到該文件,並給我的錯誤: Error: F1026 File not found: 'System.Actions.dcu'
我缺少什麼?
在接下來的內容中,我假設您正在使用msbuild
編譯您的程序。
在XE3中添加了System.Actions
單元以支持FMX和VCL框架中的操作。在此之前,FMX沒有采取任何行動。有些課程從VCL單元轉移到新的可用於FMX和VCL代碼的單元中。
因此,您看到的編譯器錯誤向我暗示,您無意中編譯了一個版本,該版本在此日期之前進行了更改。我的猜測是你的IDE是XE3或更高版本,但是你的命令行版本被配置爲使用早期版本的Delphi。最有可能通過PATH
環境變量,以及無論Embarcadero入口恰好在該變量中第一次。
如果我的預感是正確的,那麼你需要確保你編譯所需的版本。
我組織有多個德爾福安裝機器的方法如下:
PATH
環境變量的所有英巴卡迪諾條目。msbuild
之前配置環境,例如運行相應的rsvars.bat
腳本(可在Delphi安裝的bin
目錄中找到)。這樣你就不會意外地發現錯誤的版本,因爲你必須明確地配置一個環境。
另一方面,也許你是直接調用dcc32。不要這樣做。您將不得不提供已經在項目文件中定義的所有選項和路徑。重複這只是一種創建維護頭痛的方法,並使得命令行構建可能與IDE構建不匹配。
而是使用msbuild來構建您的程序。這樣你可以使用你的項目文件中定義的設置。
我們使用的是dcc32來編譯程序 –
然後你應該使用msbuild。 –
感謝Hefferman的建議,但我們會堅持使用dcc32。定製更容易。例如,我們沒有弄清楚如何在msbuild中使用多個'define'參數。可以使用dcc32和-NS開關進行相關的「使用」,這就是我們的解決方案。我們還用代碼創建了一些.dpr文件,在這種情況下,我們沒有相應的.dproj文件。
在嘗試使用命令行編譯器之前,您是否保存了項目(也可能關閉它)? **確切**步驟來重現問題是什麼? –
你是如何調用命令行編譯器的?直接運行dcc32(或其他一些變體),在這種情況下,您需要傳入一整行命令行選項以確保找到正確的依賴單元,或者通過在適當的RAD Studio命令中針對項目運行MSBuild提示用於編輯項目的產品版本?如果是後者,所有相關的路徑和命令行選項都應該適當地設置。 – blong
我們使用另一個delphi程序的dcc32。對於「確保找到正確的依賴單位的整個命令行選項」,你是什麼意思?你能給個例子嗎? –