web-dev-qa-db-ja.com

「「installutil」が内部コマンドまたは外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されない」を解決する方法

次の方法でアプリケーションを実行しようとしました。

enter image description here

アプリでディレクトリを参照しましたWindowsService1.exeその中で、コマンドInstallutil WindowsService1.exeしかし、次のエラーが発生しました...

enter image description here

VSは1〜2日しかインストールされていないので、installutilが認識されるはずなので、そのインストールに何か問題があるのではないかと心配しています。

VSコマンドプロンプトが必要なすべてのプログラムを検出していることを確認するために実行できる基本的な診断はありますか?

[〜#〜] edit [〜#〜]

コマンドプロンプトでPATHを実行すると、次のように表示されます。

enter image description here

50
whytheq

これは少し話題から外れていますが、InstallUtilを使用してサービスをインストールするのをやめました。サービス自体に追加するだけで本当に簡単です。 System.Configuration.Installへの参照を追加して(正しいことを覚えている場合、Client Profileエディションでは使用できません)、Program.csのMain()関数を次のように更新します。

static void Main(string[] args)
{
    if (Environment.UserInteractive)
    {
        string parameter = string.Concat(args);
        switch (parameter)
        {
            case "--install":
            ManagedInstallerClass.InstallHelper(new[] { Assembly.GetExecutingAssembly().Location });
            break;
            case "--uninstall":
            ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location });
            break;
        }
    }
    else
    {
        ServiceBase[] servicesToRun = new ServiceBase[] 
                          { 
                              new Service1() 
                          };
        ServiceBase.Run(servicesToRun);
    }
}

次に、WindowsService1.exe引数で--installを呼び出すだけで、サービスがインストールされ、InstallUtil.exeを忘れることができます。

120

これは私がそれを消滅させるためにしたことです:

  1. 私のPCのinstallutilのある場所を見つけました。私の場合、C:\ Windows\Microsoft.NET\Framework\v4.0.30319でした

  2. 管理者としてコマンドプロンプトを開き、現在のディレクトリを上記に変更しました: 'cd C:\ Windows\Microsoft.NET\Framework\v4.0.30319'

  3. 次に、「installutil C:\ MyProgramName.exe」と入力しました

興味深いことに、上記のソリューションの前に、C:\ Windows\Microsoft.NET\Framework\v4.0.30319をシステムパス変数に追加するさまざまなオプションを試しましたが、それでも見つけることができませんでした。

スムーズにインストールしてください。

30
user3085805

InstallUtil.exeは通常、C:\ Windows\Microsoft.NET\Frameworkにリストされているバージョンのいずれかの下にあります。

私の場合、v4.0.30319以下です。

あなたのパスを確認することができます:

エコー%PATH%

実行可能ファイルを検索するディレクトリのリストが表示されます。

27
Daniel

Bytes.comで解決策を見つけました

サービスをインストールするコード:

@ECHO Installing Service...
@SET PATH=%PATH%;C:\Windows\Microsoft.NET\Framework\v4.0.30319\
@InstallUtil  C:\Unlock_4_Service\bin\Debug\Unlock_4_Service.exe
@ECHO Install Done.
@pause

@InstallUtil <Windowsサービスの.exeファイルパス>

サービスをアンインストールするコード

@ECHO Installing Service...
@SET PATH=%PATH%;C:\Windows\Microsoft.NET\Framework\v4.0.30319\
@InstallUtil /u C:\Unlock_4_Service\bin\Debug\Unlock_4_Service.exe
@ECHO Uninstall Done.
@pause

@InstallUtil/u <Windowsサービスの.exeファイルパス>

2つのファイルをservice_install.batおよびservice_uninstall.batとして保存します

サービスをインストールまたはアンインストールする必要があるたびに、管理者としてファイルを実行します。 enter image description here

4
user3188978

コマンドラインを使用してサービスをインストールする前に...

2つの手順を使用します。

  1. cd C:\ Windows\Microsoft.NET\Framework\v4.0.30319
  2. InstallUtil.exe Path\MyWindowsService.exe
3

Microsoftによると Page

Visual Studioコマンドプロンプトを使用している場合、InstallUtil.exeはシステムパス上にある必要があります。そうでない場合は、パスに追加するか、完全修飾パスを使用して呼び出すことができます。このツールは.NET Frameworkと共にインストールされ、そのパスは次のとおりです。

%WINDIR%\Microsoft.NET\Framework[64]\

たとえば、32ビットバージョンの.NET Framework 4または4.5。*の場合、WindowsインストールディレクトリがC:\ Windowsの場合、パスは次のとおりです。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe

64ビットバージョンの.NET Framework 4または4.5。*の場合、デフォルトのパスは次のとおりです。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe

2
BattleTested

これは、管理者または管理者権限でコマンドプロンプトを開いていないために発生した可能性があります。

2
Ammu

visual Studioコマンドプロンプトを管理者モードで開きます(vsコマンドプロンプトを右クリックし、管理者として実行します)

2
user7230110

パスを変更していない限り、開発者コマンドプロンプトではcmdではなく以下を使用できます。

  • msbuild
  • mstest(究極の)
  • csc
  • イラズム

...など

これらが利用できない場合、インストールが破損している可能性があります。

2
David Mason

2017年から2015年に戻った後、これを取得しましたが、2017コマンドプロンプトをまだ使用していました。チェックするもの。

1
Todd Vance
Add this in windows Environmental variables
First: Right click on My computer or This PC
Second: Click on Environmental Variables
Third: add this path after clicking on path
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe
1
radhason power