2010-12-15 72 views
11

開始在XE的構建事件系統中使用很多,但我注意到的一件事是我無法在默認項目設置中設置默認構建事件。是否有任何形式的解決方法/黑客/什麼可以使這成爲可能?我正在查看bin目錄中的CodeGear.Group.Targets和CodeGear.Delphi.Targets,如果這是可行的,那我應該在哪裏尋找?德爾福XE建立事件..全球?

謝謝

+1

+1。我也非常喜歡這個。每次我創建一些東西時,我都想要一個.bat來執行。現在我必須將這個腳本添加到每個新項目中,這很煩人。 – 2010-12-15 14:15:20

+1

歡迎來到StackOverflow,Jen。很高興看到你能夠提出一個很好的問題,並且第一次給出一個很好的答案。 :) – 2010-12-16 01:24:32

+0

謝謝:)打了幾天休息和關閉,當然我想出了半小時後詢問它大聲笑..希望Embarcadero實現這樣的IDE到他們的下一個版本,而不是不得不依靠一個kludge。 – 2010-12-16 03:15:18

回答

15

啊哈。回答我自己的問題。 (是否有一個刪除按鈕的地方?LOL)

我做了一些嘗試,增加了一些容易找到前,後生成事件(即啓動註冊表編輯器,記事本..)

在Delphi的bin目錄下有一個名爲CodeGear.Delphi.Targets的文件。裏面的是,進口段後,我說:

<PropertyGroup> 
    <PreBuildEvent><![CDATA[regedit.exe]]></PreBuildEvent> 
    <PostBuildEvent><![CDATA[notepad.exe $(MSBuildProjectFile)]]></PostBuildEvent> 
</PropertyGroup> 

重新啓動IDE,一個新的空項目執行對前和後生成的程序。請注意,它們不會顯示在項目配置屏幕上,但您可以覆蓋它們,否則CodeGear.Delphi.Targets文件中放置的任何內容都會被忽略。便宜,但它似乎是訣竅,如果需要在特定項目上仍然可以覆蓋它。 (當然,請務必備份原始文件。)

+3

回答你自己的問題完全正確,如果你在別人之前弄明白的話! – 2010-12-15 22:54:49

+1

到目前爲止,我只對SO提出過一個問題,然後自己回答了!但是請留下這些問題,以便其他人可以找到你的答案。 – 2010-12-16 06:22:41

1

@Jen Smith:非常聰明。如果有人感興趣,我現在用你的想法發瘋除了修補二進制exe作爲命令行版本的一部分,而無需自定義一個特定的項目..:

把這個後面的'導入'部分CodeGear.Delphi.Targets ..

<PropertyGroup> 
    <PostBuildEvent><![CDATA["$(programFilesx86)\madCollection\madExcept\Tools\madExceptPatch.exe" "$(DCC_ExeOutput)$(MSBuildProjectName).exe" "$(MSBuildProjectDirectory)\$(MSBuildProjectName).mes"]]></PostBuildEvent> 
    </PropertyGroup>