2011-10-04 41 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