0

VS 2013 を使用して、powershell 4.0 用のスナップインを作成する方法を学習しようとしています。スクリプトは非常にシンプルで、エラーなしでコンパイルされます。しかし、gacutil と installutil を追加してビルド後のスナップインをデプロイすると、次のエラーが発生しました。

Error   1   
The command ""C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\gacutil.exe" -if "Tools.Powershell.Printscreen.dll"
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" "Tools.Powershell.Printscreen.dll"" exited with code -1.

ただし、コマンドをコピーしてコマンド プロンプトから実行すると、両方のコマンドが正常に実行され、インストールが正常に展開されました。次に、スナップインをpowershellに追加できます。スナップインも正常に実行されました。

私がチェックしたところ、使用されたフレームワークは正しい4.5.1、VS 2013、システムはWindows 8.1でした

ビルド後のコマンドは次のとおりです。

"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\gacutil.exe" -if "$(TargetPath)"
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" "$(TargetPath)"

この時点でスナップインのコードは関係ないと思いますが、含めたい場合はお知らせください。この時点でソリューションに影響を与えるとは思いません.せいぜい単純であり、コマンドプロンプトを使用して手動で展開した後に機能しました.

お知らせ下さい。

ありがとう!

4

1 に答える 1

2

.NET 4.5.1 に対してコンパイルしている場合はできない V1 をターゲットにする必要がない限り、スナップインをビルドする理由。を使用することをお勧めしmoduleます。登録/インストールは必要ありません。モジュールをターゲット システム ($home\Documents\WindowsPowerShell\Modules) に xcopy して使用するだけです。モジュールの PSD1 マニフェスト ファイルを作成することをお勧めします。これRootModuleは、dll の名前になります: Tools.Powershell.Printscreen.dll。ファイルNew-ModuleManifestの作成に役立つコマンドを確認してください。PSD1作成者名、バージョン、モジュールを一意に識別するための GUID などの基本的なものです。エクスポートしたコマンドレットをCmdletsToExportフィールドにリストすることもお勧めします。これにより、モジュールの自動ロードの処理が高速化されます。

また、ピンチの場合、テスト目的で、dll を直接インポートすることもできます (PSD1 ファイルを作成する必要はありません)。

Import-Module -assembly c:\temp\Tools.Powershell.Printscreen.dll
于 2014-07-31T23:06:42.900 に答える