우리는 PowerShell 버전 3.0이 작동하는 데 필요한 PowerShell 스냅인이 있습니다. 그래서 우리는 윅스 (3.8) 파일에 다음 파일 요소를 사용 :이 스냅인을 설치할 때Wix의 버그? ps : SnapIn이 PowerShell 3.0에서 잘못된 레지스트리 키를 쓰고 있습니까?
<File Id="MySnapin.dll"
Name="MySnapin.dll"
Assembly=".net"
KeyPath="yes"
Vital="no"
Checksum="yes"
DiskId="1"
Source="$(var.FilesPath)\Bin\MySnapin.dll"
AssemblyApplication="MySnapin.dll">
<ps:SnapIn Id="MySnapin"
Description="This is a PowerShell snap-in"
Vendor="My Company Inc."
RequiredPowerShellVersion="3.0">
<ps:FormatsFile FileId="MySnapin.format.ps1xml" />
</ps:SnapIn>
</File>
은 그러나, 파워 쉘 (은 Get-PSSnapIn -registered)에서 찾을 수 없습니다. 레지스트리를 검사 할 때 스냅인이 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\PowerShell\3\PowerShellSnapIns\MySnapin
에 등록되어있는 것으로 나타났습니다. 그러나 DLL에 installutil.exe를 실행하면 등록은 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\PowerShell\1\PowerShellSnapIns\MySnapin
으로 끝나며 powershell은 올바르게 찾습니다. 이 버그는 WiX Toolset의 버그입니까? 아니면 여기서 뭔가 잘못하고 있습니까?
등록은 실제로 어디로 가고 있습니까?
소리가 버그 일 수는 있지만 모듈을 통해 스냅인을 사용하는 이유가 무엇입니까? 스냅인은 일반적으로 이전 버전의 PowerShell을 지원해야하는 경우에만 사용됩니다. –
SnapIn을 사용하는 이유는 매우 간단합니다. 최근까지만 cmdlet 용 모듈을 사용할 가능성을 알지 못했습니다. 모듈로 전환하는 대신이 문제를 해결하는 좋은 방법 인 것 같습니다. – DeCaf