Эталонные сборки Powershell для powershell версии ctp3
-
20-08-2019 - |
Вопрос
Я установил powershell v2 ctp3 из загрузки ms и задавался вопросом, где хранятся обычные ссылочные сборки для использования в c # для этой версии.Я знаю, что для версии v1 они находятся в program file\etc eference assemblies\powershell....но где они для версии v2 ctp3.Я специально ищу новую систему управления.Automation.dll
с уважением Боб.
Решение
В моей 32-разрядной системе XP
Get-ChildItem \ -Recurse -Include System.Management.Automation.dll |
ForEach-Object {$.Имя каталога,$($.VersionInfo.FileVersion)}
раскрывает:
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
Просмотр FileVersion показывает, что тот, который находится в GAC это та версия, которую вы ищете.Но поскольку это есть в GAC, вам не нужно беспокоиться об этом, просто ссылайтесь на это, а затем используйте.
Другие советы
В моем случае путь был в
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management .Автоматизация \версия 4.0_3.0.0.0__ 31bf3856ad364e35
Способ, которым я нашел это, состоял в том, чтобы просмотреть обновленные папки после установки этого ctp в Windows и посмотреть, куда делись обновления.Надеюсь, это поможет вам.
Вы не должны использовать GAC для разрешения ссылок.Вы должны найти соответствующие ссылки в разделе что-то вроде:C:\Program Файлы\Ссылочные сборки\Microsoft\WindowsPowerShell
Это распространенный миф о том, что сборки разрешаются во время проектирования / сборки в GAC.До CLR 4.0 вам это сходило с рук (потому что 3.0 и 3.5 на самом деле являются CLR 2.0).При истинном мультиаргетинге это прерывается.Таким образом, вы всегда должны использовать ссылочные сборки.
Также обратите внимание, что ссылочные сборки не обязательно должны содержать какой-либо код.Это могут быть просто метаданные сборки и общедоступные символы.
О, и я хотел добавить, что GAC используется загрузкой fusion для разрешения во время выполнения.
Под временем разработки / сборки я подразумеваю время, когда вы используете Visual Studio для сборки своего приложения или используете MSBuild для сборки вашего EXE-файла.Во время сборки мы определяем ссылки, которые помещаются в исполняемый файл.Поскольку может быть задействовано несколько CLR, мы должны убедиться, что указаны ссылки на "правильные" из них.