2011-10-04 31 views
1

我创建了一个非常简单的PSSnapin但是当我去反对集会,我得到以下运行IntallUtil没有找到安装程序在C:\ Tools \ PowerShellCommands \ SetServerDataSource \ bin \ Debug \ SetServerDataSource.dll程序集中。 删除InstallState文件,因为没有安装程序。运行安装UTIL定制时pssnapin

不过,我肯定有[runInstaller的(真)的安装程序(从CustomPSSnapIn继承):


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

任何想法?

回答

3

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

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

对战

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

您可以适应这个在你的公司使用的框架。这取决于你参考的地方​​。在64位计算机上,如果你这样做:

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

它是一个64Bis程序集。

+0

就是这样。我需要使用installutil的x64版本。有趣的是,我没有收到错误消息或使用x86版本的东西。 – devlife

1

当我这样做时,我刚刚将[RunInstaller(true)]应用于定义管理单元的PSSnapIn派生类。

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

+0

我完全同意这一点,我没有把它写在我的答案中,因为它看起来像“告诉我你需要什么,并且我会告诉你没有它,怎么相处。” ; o) – JPBlanc

+0

真的,我想要安装管理单元的唯一原因是我可以使用Cmdlet帮助编辑器:http://blogs.msdn.com/b/powershell/archive/2011/02/24/cmdlet-help -editor-v2-0-with-module-support.aspx – devlife

+0

@devlife听起来像是一个合理的理由......但该链接表示该工具已更新以支持模块以及单元。 – Richard