2011-12-06 13 views
1

Power-shellからWindowsサービスをインストールしようとしています。PowershellからInstallUtilにパラメータを渡す

$sn = """" + $serviceName + " " + $exeName + """" 
C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -i /ServiceName=[$sn] $exeFilePath 

次の例外が発生します。

Microsoft (R) .NET Framework Installation utility Version 2.0.50727.3053 
Copyright (c) Microsoft Corporation. All rights reserved. 

Exception occurred while initializing the installation: 
System.IO.FileNotFoundException: Could not load file or assembly 'file:///E:\Scheduled' or one of its dependencies. The system cannot f 
ind the file specified.. 

ただし、次のコマンドが機能します。

C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -i /ServiceName=["Scheduled Download Service"] $exeFilePath 

Windowsサービスを動的名でインストールしようとしています.Power-shellを使用して、サービス名を渡します。どんな助けもありがとうございます。

VS 2008の答えは正しいです。しかし、VS 2012で失敗します。InstallUtilが変更されているためです。

あなたは自動的に引用符を追加し、私たちは(答えのように)、それらを無視すべき $sn = """" + $serviceName + " " + $exeName + """"

理由は、ます。installutil(2.0)を使用する必要があります。しかし、InstallUtil(4)では、文字列に任意の場所に引用符が含まれているとバグがスキップされます(これはバグです - 文字列の先頭と末尾に引用符があるかどうかチェックしてください)。

リフレクターはあなたの友人です。

答えて

3

あなたの問題は、この行である:

$sn = """" + $serviceName + " " + $exeName + """" 

あなたが単純なものと交換、またはそれは次のように行います場合は、次の

$sn = $serviceName.ToString() + " " + $exeName 

それは

+0

おかげで動作します。しかし、Service Nameは[Scheduled Download Service]としてインストールされています。私は、スケジュールダウンロードサービスを期待しています。 – Vivasaayi

+0

まだ[予約ダウンロードサービス]です。 – Vivasaayi

+0

予約ダウンロードサービス – Vivasaayi

関連する問題