簡體   English   中英

DTF正在復制自定義操作dll文件

[英]DTF is copying custom action dll files

我有在installshield中創建的msi安裝程序,並且正在執行DTF自定義操作dll作為提交自定義操作。 如果將MessageBox.Show插入到自定義動作中,則可以看到[PROGRAMFILESDIR]中有一個名為“ CustomActionProject.CA.dll-”的臨時文件夾,並且復制了CustomActionProject.CA.dll及其所有引用。

是否有任何方法告訴技術不要創建此臨時文件夾並在.CA.dll所在的同一文件夾中提取並執行CustomActionProject.CA.dll?

編輯:

我發現我無法通過配置wix.ca.targets將引用包含在.CA.dll中。 在我的情況下,這可以防止.CA.dll包含20MB的dll。

現在,我想確保CustomActionProject.dll將能夠看到與產品一起安裝的引用。

這些文件是:

<ProgramFilesFolder>
  <MyApplicationFolder>
    CustomActionProject.CA.dll
    ... About 30 dlls installed with the application that CustomActionProject.dll needs to call
    <Place I Would Like to See CustomActionProject.dll extracted> 

您的自定義操作是使用托管的.Net語言(可能是C#或VB.Net)進行編程的。 由於msi文件可能僅包含由本機代碼組成的dll自定義操作,因此DTF工具(特別是工具makesfxca.exe將托管的dll與幫助程序代碼一起打包/包裝在一起,從而導致自我提取的本機代碼dll。 按照WIX的命名約定,本機自定義操作dll包含一個.CA前綴。

為了使其正常工作(即,用生成托管代碼的語言編寫自定義操作),必須進行自我提取。 因此,對您的問題的簡短回答是“ ”。

DTF會自動將其文件提取到temp文件夾中以供執行,然后進行清理。 這非常好,因為它消除了某些比賽條件。 如果願意,您仍然可以將這些文件創作到安裝程序中。 例如,在以前的公司中,我們的安裝程序在安裝過程中使用了多個DLL進行許可證檢查,並安裝了它們以供應用程序在運行時使用。

順便說一句,請確保您已經看到以下內容:

WiX DTF行為警報

暫無
暫無

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

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