首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SRM通过WIX安装程序注册SharpShell扩展

使用SRM通过WIX安装程序注册SharpShell扩展
EN

Stack Overflow用户
提问于 2022-04-12 13:28:02
回答 1查看 41关注 0票数 0

首先,我应该澄清,我是一个新手,一直在努力理解WIX格式,但是通过拼凑在线找到的例子,我现在有了安装良好的文件,所以接下来我需要注册我的DLL。

我使用这里的示例作为起点:How to deploy a SharpShell-based shell extension via WiX?,但是SharpShell工具srm.exe似乎没有在安装时被调用。

如果我按下面的方式手动调用srm.exe,它就会像希望的那样工作,即注册DLL,我的shell扩展也能工作。

代码语言:javascript
运行
复制
srm install MyExtension.dll -codebase

我还可以看到,通过SharpShell附带的Server应用程序,注册已经成功。

我还可以手动卸载以下内容--并不是这与我的问题特别相关,但至少可以确认手动方法是有效的:

代码语言:javascript
运行
复制
srm uninstall MyExtension.dll

这里是我的WXS文件的一个片段。运行结果MSI时,将安装文件,但未注册DLL;请通过SharpShell的服务器管理器确认。我哪里出问题了?

代码语言:javascript
运行
复制
        </Component>
        <Component Id="SRMexe" Guid="C17BB61F-6471-46F9-AA87-2D14D2456632">
            <File Id='srm' Name='srm.exe' DiskId='1'  Source='..\MyExtension\packages\SharpShellTools.2.2.0.0\lib\srm.exe' KeyPath='yes'>

            </File>
        </Component>
            <!-- TODO: Insert files, registry keys, and other resources here. -->
        <!-- </Component> -->
    </ComponentGroup>
</Fragment>
<Fragment>
    <CustomAction Id="InstallShell" FileKey="srm"
      ExeCommand='install "[INSTALLFOLDER]\MyExtension.dll" -codebase'
      Execute="deferred" Return="check" Impersonate="no" />
    <CustomAction Id="UninstallShell" FileKey="srm"
          ExeCommand='uninstall "[INSTALLFOLDER]\MyExtension.dll"'
          Execute="deferred" Return="check" Impersonate="no" />
    <InstallExecuteSequence>
        <Custom Action="InstallShell"
          After="InstallFiles">
            NOT Installed
        </Custom>
        <Custom Action="UninstallShell"
          Before="RemoveFiles">
            (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
        </Custom>
    </InstallExecuteSequence>
</Fragment>
EN

回答 1

Stack Overflow用户

发布于 2022-04-13 00:03:05

看起来没有任何带有CustomAction定义的片段的引用,因此它们没有链接到最终的输出MSI中。

从Product中添加一个CustomActionRef来创建引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71843579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档