2012-04-16 70 views
0

我有一個自定義操作執行自定義操作DLL卻是失敗,我相信這是因爲它不知道如何讀的強名稱組件我怎麼能包括強名稱組件文件在我安裝

所以我有這個:

<Binary Id="StrongName" SourceFile="$(var.MyProject.TargetDir)MyProject.CA.dll"/> 

    <CustomAction Id="CreateIt" 
       BinaryKey="StrongName" 
       DllEntry="Create" 
       Execute="deferred" 
       Return="check" 
       HideTarget="no" 
       Impersonate="no" /> 

    <CustomAction Id="RemoveIt" 
       BinaryKey="StrongName" 
       DllEntry="Remove" 
       Execute="deferred" 
       Return="check" 
       HideTarget="no" 
       Impersonate="no" /> 

    <InstallExecuteSequence> 
      <Custom Action="CreateIt" Before="InstallFinalize">(NOT REMOVE =  "ALL")</Custom> 
      <Custom Action="RemoveIt" Before='InstallFinalize'>(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom> 
    </InstallExecuteSequence> 

那麼我如何引用簽名,因爲我執行此DLL?

+0

順便說一句,我唯一的錯誤是。該向導由於錯誤而過早結束。我沒有更多的細節過去,不知道如何得到更多的細節 – Pittfall 2012-04-16 14:17:36

+0

如果你啓用Windows安裝程序日誌記錄,你應該得到各種錯誤的詳細信息,包括.net堆棧轉儲。 – 2012-04-16 17:10:52

回答

0

我的問題的解決方案是由.NET 4中不支持的過時庫導致的安全問題,它是一個不同的主題,所以除非有人好奇,否則我不會詳細討論它。

1

我從* .CA.DLL命名法假設您正在使用這是一個DTF自定義操作。這是託管您的託管DLL的本地封裝的DLL。作爲本地人,它不能被強有力地命名。

記錄安裝並查看日誌中的失敗原因。