加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 23:29:14 所属栏目:百科 来源:网络整理
导读:我创建了锐利的 shell扩展,用于使用.Net自定义 Windows的右键菜单上下文.该项目的结果是.dll.我尝试使用服务器管理器工具安装和注册它,该工具与尖锐的shell工具一起存在并且它成功运行.现在我需要从我的wix项目安装并注册这个shell扩展,因为我需要用户安装我
我创建了锐利的 shell扩展,用于使用.Net自定义 Windows的右键菜单上下文.该项目的结果是.dll.我尝试使用服务器管理器工具安装和注册它,该工具与尖锐的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 ressource的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="packagesSharpShellTools.2.2.0.0libsrm.exe" KeyPath="yes" />
</Component>

您需要检索与您使用的Sharpshell版本相关联的srm.exe(我建议您使用nuget包).你可以在这里找到相关的信息:
http://www.codeproject.com/Articles/653780/NET-Shell-Extensions-Deploying-SharpShell-Servers

希望它会帮助你;)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读