conjuntos de referência Powershell para powershell v2 CTP3
-
20-08-2019 - |
Pergunta
Eu instalei powershell v2 CTP3 a partir do download ms e queria saber onde os assemblies de referência habituais são armazenados para uso em c # para esta versão. Eu sei que para a versão v1 eles estão no arquivo de programa \ etc \ montagens de referência \ PowerShell .... mas onde estão eles para a versão v2 CTP3. Eu procurando especificamente para o novo System.Management.Automation.dll
que diz respeito Bob.
Solução
No meu sistema XP de 32 bits
Get-ChildItem \ -Recurse -Include System.Management.Automation.dll |
ForEach-Object {$.DirectoryName,$($.VersionInfo.FileVersion)}
revela:
C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0
6.0.6000.16386
C:\WINDOWS\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35
6.1.6949.0
Olhando para o FileVersion revela que a do GAC é a versão que você está procurando por. Mas já que é no GAC você não precisa se preocupar com isso, basta fazer referência a ela e do que usá-lo.
Outras dicas
No meu caso o caminho estava em
C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Management.Automation \ v4.0_3.0.0.0__31bf3856ad364e35
A maneira que eu achei que era para ver as pastas atualizados depois de instalar este CTP no Windows e ver onde as atualizações foram. Espero que isso ajude você.
Você não deve usar o GAC para referências resolver. Você deve encontrar as referências apropriadas em algo como: C: \ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell
É um mito comum que as assembléias são resolvidos em tempo de concepção / construção no GAC. Antes de CLR 4.0, você conseguiu acabar com ela (porque 3.0 e 3.5 são realmente CLR 2.0). Com verdadeiros multi-alvo Isso quebra. Como tal, você deve sempre usar assemblies de referência.
Além disso, note que as assembleias de referência não tem que conter qualquer código. Eles podem ser apenas a montagem de meta-dados e os símbolos públicos.
Oh, e eu quis acrescentar, o GAC é usado pela carga de fusão para a resolução de tempo de execução.
By Design / hora Build, quero dizer no momento que você estiver usando o Visual Studio para criar o seu applicaiton, ou está usando MSBuild para construir o seu EXE. Durante a construção, nós determinamos as referências que são colocados no EXE. Uma vez que não podem ser múltiplas CLR está envolvido, nós temos que certificar-se as "certas" são referenciados.