安装和注册shell扩展上下文菜单来自wix安装程序

本文关键字:安装 wix 程序 菜单 上下文 注册 shell 扩展 | 更新日期: 2023-09-27 18:26:21

我使用.Net创建了sharp shell扩展,用于自定义窗口的右键菜单上下文。项目的结果是一个.dll。我尝试使用与sharp shell工具一起存在的服务器管理器工具安装和注册它,它成功地工作了。现在我需要从我的wix项目中安装并注册这个shell扩展,因为我需要用户安装我的应用程序,并在安装后自定义窗口的右键上下文菜单。

我需要详细的步骤,因为我是新使用Wix安装程序。

安装和注册shell扩展上下文菜单来自wix安装程序

以下是如何从wix:注册扩展

首先,您需要定义(在产品范围内)自定义操作来注册/注销您的扩展:

<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"是wix项目中扩展dll资源的id:

<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版本相关联的srm.exe(我建议您使用nuget包)。您可以在此处找到相关信息:http://www.codeproject.com/Articles/653780/NET-Shell-Extensions-Deploying-SharpShell-Servers

希望它能帮助你;)