У меня есть среда, в которой файлы не могут быть записаны на диск, и поэтому я обычно загружаю DLL из памяти в GAC.
Хотя загрузка не является проблемой, разоблачение командлетов DLL происходит.Сборка загружена:
[appdomain]::currentdomain.getassemblies() | sort -property fullname | format-table fullname
FullName
--------
AudioDeviceCmdlets, Version=3.0.0.4, Culture=neutral, PublicKeyToken=null
fl *
CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
FullName : AudioDeviceCmdlets, Version=3.0.0.4, Culture=neutral, PublicKeyToken=null
EntryPoint :
DefinedTypes : {CoreAudioApi.AudioEndpointVolume, CoreAudioApi.AudioEndpointVolumeCallback, CoreAudioApi.AudioEndpointVolumeChannel, CoreAudioApi.AudioEndpointVolumeChannels...}
Evidence : {<System.Security.Policy.Url version="1">
<Url>file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll</Url>
</System.Security.Policy.Url>
, <System.Security.Policy.Zone version="1">
<Zone>MyComputer</Zone>
</System.Security.Policy.Zone>
}
PermissionSet : {}
SecurityRuleSet : Level2
ManifestModule : AudioDeviceCmdlets.dll
ReflectionOnly : False
Location :
ImageRuntimeVersion : v4.0.30319
GlobalAssemblyCache : False
HostContext : 0
IsDynamic : False
EscapedCodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
ExportedTypes : {CoreAudioApi.AudioEndpointVolume, CoreAudioApi.AudioEndpointVolumeChannel, CoreAudioApi.AudioEndpointVolumeChannels, CoreAudioApi.AudioEndpointVolumeNotificationDelegate...}
IsFullyTrusted : True
CustomAttributes : {[System.Runtime.CompilerServices.CompilationRelaxationsAttribute((Int32)8)], [System.Runtime.CompilerServices.RuntimeCompatibilityAttribute(WrapNonExceptionThrows = True)],
[System.Diagnostics.DebuggableAttribute((System.Diagnostics.DebuggableAttribute+DebuggingModes)2)], [System.Reflection.AssemblyTitleAttribute("AudioDeviceCmdlets")]...}
Modules : {<unknown>}
.. но CMDLets не экспортируются ... конечно, я наверняка что-то упускаю.
Та же DLL, загруженная «обычным» способом:
load-module AudioDeviceCmdlets.dll
корректно экспортирует несколько CmdLets, например Get-AudioDevice и Set-AudioDevice .
Любой намек на какие шаги я пропускаю, чтобы выставить Командлеты в DLL?