2017-08-09 20 views
1

.DLLGACに登録しようとしています。 現在、アセンブリに追加されたことを証明するのが難しいです。GACにDLLを登録する(CMDまたはPowerShell)

Cコマンドを使用して

:\に\ WINDOWS \ System32に>%のPROGRAMFILES(x86の)%\マイクロソフト のSDK \ Windowsの\ v7.0A \ビン\ Gacutil.exeを-i「パス\を私\ file.dll "

プロンプトから、アセンブリがキャッシュに追加されたことがわかります。 \プログラムファイル(x86の)\マイクロソフトのSDK \ Windowsの\ v7.0A \ビン> Gacutil.exeを-lファイル.dll

それは言う:

Cでチェック

アセンブリには0個の要素があります。

経由Powershellコマンド、私はこのようなDLLを追加しようとしています:

PS C:\ WINDOWS \ SYSTEM32>追加型-AssemblyNameを "のSystem.EnterpriseServices"

PS C :\ WINDOWS \ SYSTEM32> $公開= 新オブジェクトSystem.EnterpriseServices.Internal.Publish

PS C:\ WINDOWS \ SYSTEM32> $ publish.GacInstall( "ファイル.dll")

どうしたのですか? GAC.DLLを追加するにはどうすればよいですか?私にとって最良の方法は、Powershellでそれを行うことです。

答えて

0

PowerShellを管理者として実行することを忘れないでください。そうしないと動作しません。

$dllpath = c:\path\yourdll.dll 
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")    
$publish = New-Object System.EnterpriseServices.Internal.Publish    
$publish.GacInstall($dllpath) 

あなたはおそらく、たとえば、この後に、関連するどのようなサービスやプログラムを再起動する必要があります。

if (Get-Service "YourService" -ErrorAction SilentlyContinue) 
    { 
     Stop-Service -Name 'YourService' 
     Start-Service -Name 'YourService' 

    } 

それとも、コンピュータを再起動します。私はこれらPowerShellの線でそれを解決するために管理

+0

あなたの答えをありがとう。 Powershellで最初のコマンドを実行しようとすると、次のメッセージが表示されます。 PS C:\ WINDOWS \ system32> $ dllpath = C:\ temp \ file.dll プログラムのファイル "file.dll"が見つかりません:Der angegebenen Datei 1 Zeichen:12 + $ dllpath = C:\ temp \ fileです。dll + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Zeileで :1ゼッケン:1 + $たDllPath = C:\一時\のファイル.dll + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ + CategoryInfo:ResourceUnavailable:(:) []、ApplicationFailedException + FullyQualifiedErrorId:NativeCommandFailed エラーが発生します...しかし、なぜですか? –

+0

@TimD。エラーを英語に翻訳できますか? – coinbird

+0

**「プログラムfile.dllを実行しているときにエラーが発生しました」というメッセージが表示されます。ファイルがアプリケーションにアサインされていません。ライン内:1文字:12 "**残りは英語で表示されています。 –

1

:PC /サーバを再起動した後

Set-location "C:\Temp" 
 
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") 
 
$publish = New-Object System.EnterpriseServices.Internal.Publish 
 
$publish.GacInstall("C:\Temp\file.dll")

、DLLをGACに登録されています。助けてくれてありがとう! :)

関連する問題