Add-Type не работает при первом запуске скрипта PowerShell - PullRequest
0 голосов
/ 15 мая 2019

Я работаю над сценарием powershell, который взаимодействует с локальным экземпляром базы данных SQL Server 2016. Когда я открываю сценарий в ISE и запускаю его, он терпит неудачу с ошибкой: «проверьте, загружена ли сборка, содержащая этот тип». Если я сразу же запустил его снова, это сработает.

Я сейчас загружаю код как:

Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=14.0.0.0, Culture=neutral, PublicKeyToken89845dcd8080cc91"

но я уже пробовал

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") and got the same results.

Я также попытался добавить:

start-sleep -s 120

на случай, если это была просто проблема, связанная со временем, но это не имеет никакого эффекта.

Я ожидаю, что сборки будут загружены в течение нескольких секунд, а затем сразу же станут доступны. В дополнение к «убедитесь, что сборка, содержащая этот тип, загружена», я также получаю исключения NullReferenceException для объектов, созданных из отсутствующих сборок.

1 Ответ

0 голосов
/ 29 мая 2019

Я наконец нашел ответ.Правильный и рекомендуемый способ загрузки сборок SMO - импортировать модуль SqlServer:

Import-Module SqlServer

Это включено в этой статьи Microsoft

...