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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top