Gruppi di riferimento Powershell per powershell v2 ctp3
-
20-08-2019 - |
Domanda
Ho installato powershell v2 ctp3 dal download ms e mi chiedevo dove fossero memorizzati i soliti assembly di riferimento per l'uso in c # per questa versione. So che per la versione v1 sono nel file di programma \ etc \ reference assembly \ powershell .... ma dove sono per la versione v2 ctp3. In particolare cerco il nuovo System.Management.Automation.dll
saluti Bob.
Soluzione
Sul mio sistema XP a 32 bit
Get-ChildItem \ -Recurse -Include System.Management.Automation.dll |
ForEach-Object {$.DirectoryName,$($.VersionInfo.FileVersion)}
rivela:
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
Guardando FileVersion rivela che quella nella GAC è la versione che stai cercando. Ma dal momento che è nel GAC non devi preoccuparti di esso, basta fare riferimento a esso e piuttosto che usarlo.
Altri suggerimenti
Nel mio caso il percorso era in
C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Management.Automation \ v4.0_3.0.0.0__31bf3856ad364e35
Il modo in cui l'ho trovato è stato vedere le cartelle aggiornate dopo aver installato questo ctp in Windows e vedere dove sono andati gli aggiornamenti. Spero che questo ti aiuti.
Non utilizzare il GAC per risolvere i riferimenti. Dovresti trovare i riferimenti appropriati sotto qualcosa come: C: \ Programmi \ Assembly di riferimento \ Microsoft \ WindowsPowerShell
È un mito comune che gli assembly vengano risolti in fase di progettazione / costruzione nel GAC. Prima di CLR 4.0, te ne sei andato via (perché 3.0 e 3.5 sono davvero CLR 2.0). Con il vero multi-targeting questo si interrompe. Pertanto, dovresti sempre utilizzare gli assembly di riferimento.
Si noti inoltre che gli assembly di riferimento non devono contenere alcun codice. Possono essere solo i metadati dell'assembly e i simboli pubblici.
Oh, e volevo aggiungere, il GAC è usato dal carico di fusione per la risoluzione di Runtime.
Per tempo di progettazione / costruzione, intendo nel momento in cui stai usando Visual Studio per creare la tua applicazione o stai usando MSBuild per creare il tuo EXE. Durante la compilazione, determiniamo i riferimenti che vengono inseriti nel file EXE. Dato che potrebbero essere coinvolti più CLR, dobbiamo assicurarci che & Quot; right & Quot; quelli sono referenziati.