【问题标题】:No installers found when running install util on custom pssnapin在自定义 pssnapin 上运行 install util 时未找到安装程序
【发布时间】:2011-11-30 10:51:01
【问题描述】:

我创建了一个非常简单的 PSSnapin,但是当我对程序集运行 IntallUtil 时,我得到以下信息:

在 C:\Tools\PowerShellCommands\SetServerDataSource\bin\Debug\SetServerDataSource.dll 程序集中找不到具有 RunInstallerAttribute.Yes 属性的公共安装程序。 删除 InstallState 文件,因为没有安装程序。

但是,我肯定有一个带有 [RunInstaller(true)] 的安装程序(继承自 CustomPSSnapIn):


[RunInstaller(true)]
public class SetServerDataSourcePSSnapIn : CustomPSSnapIn
{
   ///
}

有什么想法吗?

【问题讨论】:

    标签: powershell installutil pssnapin


    【解决方案1】:

    小心使用良好的 InstallUtil.exe 安装它。它存在 64 位和 32 位。

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe
    

    对比

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
    

    您可以根据贵公司使用的框架进行调整。这取决于您从哪里引用 System.Management.Automation 。在 64 位计算机上,如果您从以下位置进行操作:

    C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0
    

    它是一个 64Bis 程序集。

    【讨论】:

    • 就是这样。我需要使用 x64 版本的 installutil。有趣的是,我使用 x86 版本没有收到错误消息或其他内容。
    【解决方案2】:

    完成此操作后,我刚刚将[RunInstaller(true)] 应用于定义管理单元的PSSnapIn 派生类。

    但是,除非您确实必须支持 PowerShell V1,否则最好创建一个(二进制)模块并且不需要安装程序。

    【讨论】:

    • 我完全同意这一点,我不会把它放在我的答案中,因为它看起来像“告诉我你需要什么,我会告诉你如何在没有它的情况下相处。” ;o)
    • 我想安装管理单元的唯一原因是我可以使用 Cmdlet 帮助编辑器:blogs.msdn.com/b/powershell/archive/2011/02/24/…
    • @devlife 听起来是一个合理的理由……但该链接表明该工具已更新为支持模块和管理单元。
    • @Richard 我知道!但是,它也不适用于该模块。它已经开源,所以我要调试一下,看看问题出在哪里。
    猜你喜欢
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    相关资源
    最近更新 更多