2015-12-10 124 views
3

我創建了一個清晰的外殼擴展,用於使用.Net自定義窗口的右鍵菜單上下文。該項目的結果是一個.dll。我嘗試使用服務器管理器工具安裝並註冊它,該工具與尖銳的shell工具一起存在,並且它已成功運行。現在我需要從我的wix項目安裝並註冊這個外殼擴展,因爲我需要用戶安裝我的應用程序並在安裝後自定義窗口的右鍵單擊上下文菜單。安裝和註冊外殼擴展上下文菜單從wix安裝程序

我需要詳細的步驟,因爲我是使用Wix安裝程序的新手。

+0

歡迎堆棧溢出。請參加[旅遊]並訪問我們的[幫助]。您的問題缺乏詳細信息,以確定您在當前嘗試中的位置。如果你還沒有開始,那麼恐怕我們不能幫助你,因爲我們不太適合提供完整的教程。 – rene

回答

6

這裏是你如何註冊從維克斯分機:

首先,你需要定義(在產品的範圍內)的自定義操作註冊/註銷您的分機:

<Product> 
    <!-- ... --> 
    <CustomAction Id="InstallShell" FileKey="srm.exe" ExeCommand='install "[INSTALLFOLDER]\MyExtension.dll" -codebase' Execute="deferred" Return="check" Impersonate="no" /> 
    <CustomAction Id="UninstallShell" FileKey="srm.exe" ExeCommand='uninstall "[INSTALLFOLDER]\MyExtension.dll"' Execute="deferred" Return="check" Impersonate="no" /> 
</Product> 

然後,你需要自定義安裝執行順序推出這些自定義操作:

<Product> 
    <!-- ... --> 
    <InstallExecuteSequence> 
     <Custom Action="InstallShell" After="InstallFiles">NOT Installed</Custom> 
     <Custom Action="UninstallShell" Before="RemoveFiles">(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom> 
    </InstallExecuteSequence> 
</Product> 

「MyExtension.dll」是你的擴展DLL的ressource在你的WiX工程中的標識T:

<Component Guid="*"> 
    <File Id="MyExtension.dll" KeyPath="yes" Source="bin\$(var.Configuration)\MyExtension.dll" /> 
</Component> 

同爲srm.exe:

<Component Guid="*"> 
    <File Id="srm.exe" Source="packages\SharpShellTools.2.2.0.0\lib\srm.exe" KeyPath="yes" /> 
</Component> 

您需要檢索關聯Sharpshell的版本使用(我推薦您使用NuGet包)srm.exe。你可以找到相關信息,在這裏: http://www.codeproject.com/Articles/653780/NET-Shell-Extensions-Deploying-SharpShell-Servers

希望它會幫助你;)

+0

非常感謝您的詳細幫助@rene – Laila

+0

而不是'[INSTALLFOLDER]'我不得不使用'[INSTALLDIR]' – Peter