簡體   English   中英

安裝程序安裝程序上的自定義操作在C#/。NET中不起作用

[英]Custom actions on setup installer not working in C#/.NET

我有這個項目,需要在安裝過程中運行InstallerClass。

我將其添加為“自定義操作”,並且多年來一直如此。 我們對該類進行了一些維護,清理了解決方案,重新生成了解決方案,現在尚未觸發自定義操作。

我知道它們沒有被觸發,因為在清理之前我有Debugger.Break()調用正常工作,並且實際上不再創建要創建的注冊表項。

到底是怎么回事? 我該怎么做才能從MSI安裝程序中獲取更多信息?

物有所值,我的機器是64位的,但是該項目是針對32位( x86 )構建的。 我以前曾以任何CPU的形式來構建它,現在無論構建什么都沒有關系,沒有結果。

我已經進行了更多的研究,發現如果Debugger.Break(); 不再工作可能是由於依賴性問題,盡管我在項目上沒有任何錯誤或警告。 我對MSI進行了詳細介紹,但我也無法從中做出任何事情。

在日志上迷路后,我沒有任何用處。 我再次重新開始,並使用彈出窗口創建了一個新的Installer類。 起作用了。 之后添加了Break(),它也起作用,添加了我想運行的使用Process語句,並且起作用了一次。

之后,我發現:如果我離開Debugger.Break()它將被跳過,但是如果我將其刪除,它將起作用...

是的,這是隨機的……怎么了?

值得首先檢查源代碼控制中對安裝程序所做的更改。

無論如何,我已經看到各種奇怪的情況,其中安裝程序的行為很奇怪。 一些建議:

  • 確保base.Install為最后。
  • 以管理員身份運行VS。
  • 重新創建安裝程序項目(它們可能會損壞)。

在另一台計算機上嘗試MSI-如果它可以工作,則MSI沒問題,並且您的計算機有問題。 一個MSI執行可能會留下一些殘余。

從計算機上卸載產品,然后嘗試使用產品代碼的MSIZap 這將清理您的計算機,以清除可能遺留下來的所有殘留內容。

暫無
暫無

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

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