2016-12-20 2 views
1

Я пытаюсь использовать командлеты PackageManagement, которые поставляются с SharpDevelop 5.1, но у меня проблема.Как использовать пакет PackageManagement.Cmdlets SharpDevelop в powershell

Это то, что я пытался

import-module ".\PackageManagement.Cmdlets.dll" 

$solution = "C:\Git\TestProject\TestProject.sln" 

$project = Get-Project TestProject $solution 

Это приводит к TypeInitializationException

System.TypeInitializationException: The type initializer for 
'ICSharpCode.PackageManagement.PackageManagementServices' threw an exception. 
---> ICSharpCode.Core.ServiceNotFoundException: Required service not found: 
ICSharpCode.Core.IPropertyService 

Я также попытался загрузки DLL через отражения:

[Reflection.Assembly]::LoadFrom(".\PackageManagement.Cmdlets.dll") | Out-Null 

$test = New-Object ICSharpCode.PackageManagement.Cmdlets.GetProjectCmdlet 

что привело в том же исключении.

Глядя на журналы слияния, похоже загружены следующие библиотеки:

PackageManagement 

NuGet.Core 

ICSharpCode.SharpDevelop 

ICSharpCode.Core 

Это не выглядит как командлетов сами загружаются.

Что я делаю неправильно?

ответ

1

Вы не можете использовать PackageManagement.Cmdlets.dll самостоятельно из командной строки PowerShell. Это зависит от частей SharpDevelop, которые необходимо инициализировать перед использованием.

Давным-давно я создал версию SharpDevelop 4 and the NuGet PowerShell cmdlets, которую вы можете использовать из командной строки с помощью PowerShell. Эта работа никогда не переносилась для работы с SharpDevelop 5.

+0

Теперь я понимаю, почему это не сработает, когда я попробовал все, что мог. Спасибо, что ответили Мэтту! Легко ли перенести решение в последнюю версию SharpDevelop? – hoangbv15

Смежные вопросы