Как указать путь сборки при использовании Import-Module - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть Solution.dll, в котором есть методы, чтобы открыть SharePoint Online Management Shell и выполнять операции, как указано здесь .когда я делаю это, я иногда получаю исключение, что

Could not load type 'Microsoft.Online.SharePoint.TenantManagement.SPOConditionalAccessPolicyType' from assembly 'Microsoft.Online.SharePoint.Client.Tenant, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.

Проблема в том, что у меня есть старая версия Microsoft.Online.SharePoint.Client.Tenant.dll в том же каталоге, где находится мой Solution.dll.И у него нет SPOConditionalAccessPolicyType класса.Принимая во внимание, что «C: \ Program Files \ SharePoint Online Shell \ Microsoft.Online.SharePoint.PowerShell \ Microsoft.Online.SharePoint.Client.Tenant.dll» имеет класс.

Итак, когда я хочуЧтобы получить доступ к командной консоли Online, я хочу, чтобы решение загрузило dll-клиент, находящийся в папке «Online Management Shell», вместо загрузки dll в папку моего проекта.

Попытался указать следующее:

InitialSessionState iss = InitialSessionState.CreateDefault();
iss.ImportPSModule(new string[2] { "C:\\Program Files\\SharePoint Online Management Shell\\Microsoft.Online.SharePoint.PowerShell\\Microsoft.Online.SharePoint.PowerShell.dll",
                                   "C:\\Program Files\\SharePoint Online Management Shell\\Microsoft.Online.SharePoint.PowerShell\\Microsoft.Online.SharePoint.Client.Tenant.dll" });

но не повезло.По-прежнему получал сообщение об ошибке «Не удалось загрузить тип ...».

Удаление старой версии dll может не быть моим решением, так как она мне нужна для другой цели.Как я могу указать требуемый путь DLL, который должен быть загружен всегда, независимо от наличия сборки.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Вы можете просто написать следующее в Powershell.

[System.Reflection.Assembly]::LoadFrom("PATH TO ASSEMBLY")

Пожалуйста, обратитесь к этой статье от Microsoft msdn.microsoft.com и ознакомьтесь с методами загрузки

0 голосов
/ 24 апреля 2018

Это можно сделать с помощью манифеста модуля:

New-ModuleManifest -Path '.\MyManifest.psd1' -RequiredAssemblies 'C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll'

И затем использовать Import-Module:

Import-Module -Name '.\MyManifest.psd1'
...