Как вы интегрируете пользовательские провайдеры в инструмент «Развертывание веб-развертывания Microsoft»? [закрыто

StackOverflow https://stackoverflow.com/questions/4073954

Вопрос

Я пытаюсь продлить инструмент развертывания веб-развертывания Microsoft и MSDELoind с пользовательским поставщиком, поскольку я хочу запустить пользовательские задачи на машине развертывания назначения в рамках процесса. Общая документация довольно хороша за пределами разработки пользовательских провайдеров, но документация для какого-либо расширения, кажется, не существует в направлении Abysmal.

Я исследую это уже несколько дней и нашел несколько битов и кусочков, которые позволили мне получить довольно далеко в процесс без какой-либо реальной документации. Я почти взломал свой путь через процесс, но теперь у меня есть одна окончательная проблема: msdeploy не будет распознавать мой таможенный провайдер.

Я создал два класса, которые расширяют Microsoft.Web.deployment.deploymentProviderfactory (в котором есть как имя, так и свойства дружественных знаменитостей, переопределенные на имя моего пользовательского провайдера «Archimedes»); Другое расширяет Microsoft.Web.deployment.deploymentobjectProvider, который также имеет имя отпределяемого имени свойства «Archimedes». Я сделал это, следуя на заказ на заказ пример BatchProvider, вы можете найти онлайн. Похоже, это выглядит:

ArchimedesProviderFactory (который расширяет развертываниеProviderFactory и имеет атрибут ProviderFactory в развертывании, назначенный классу):

public override string FriendlyName
{
    get { return "archimedes"; }
}

public override string Name
{
    get { return "archimedes"; }
}

Класс ArchimedesProvider расширяет развертываниеобекциюProvider и имеет это:

public override string Name
{
    get { return "archimedes"; }
}

В моем файле SourceMemanifest.xml у меня добавлено запись:

<archimedes path="..." />

Я поместил файл сборки, который содержит эти классы в% Program Files% IIS Microsoft Web Deploy расширяемость, так как я тоже был направлен на материал, который я нашел в Интернете.

Забавная вещь в том, что во время сборки пакета в Visual Studio 2010 мои поставщики имеют код, призванные к ним из этого каталога - поэтому VS определенно подключается к моей сборке, помещенной там как-то (например, я могу бросать исключения и увидеть, что Они были брошены во время процесса построения пакета).

Однако во время фактического тестового развертывания пакета из сгенерированного файла .CMD я получаю ошибку, которую завод для провайдера «Archimedes» не найден. Также печатаю:

MSDeply -verb:dump -source:archimedes -debug

Возвращает следующее:

    Microsoft.Web.Deployment.DeploymentException: Unknown factory 'archimedes'.
   at Microsoft.Web.Deployment.DeploymentProviderSettingCollection..ctor(String factoryName)
   at Microsoft.Web.Deployment.DeploymentProviderOptions..ctor(String factoryName)
   at MSDeploy.MSDeploy.GetObjectParameters(Dictionary`2 parameters, Boolean isDestination, DeploymentBaseOptions& retbaseOptions, DeploymentProviderOptions& re
tproviderOptions)
   at MSDeploy.MSDeploy.ExecuteWorker()
   at MSDeploy.MSDeploy.Execute()
   at MSDeploy.MSDeploy.Main(String[] unusedArgs)
Error count: 1.

Помимо того, что, помимо того, что там, по-видимому, не согласен, центральный источник документации для разработки пользовательских поставщиков (кто-нибудь знает о месте, пожалуйста, скажи, если вы нашли один), моя главная проблема в том, что по какой-то причине визуальная студия увидит и Позвоните в мою завод поставщика из файла сборки, я бросил в папку «Расширяемость», но фактическое MSDEPLOYPLOPLE / WEBDEPLAY его не видит. У кого-нибудь есть идеи?

Благодаря тонну...

Это было полезно?

Решение

Хорошо, это была простая ошибка, хотя не очевидная, поскольку часть поставки пакета, доступа к коду хорошо и называется его от моего провайдера. Проблема заключалась в том, что поскольку практически обо всем в веб-приложении целена обменные данные 4.0 Framework. Я должен был установить целевую структуру до 2.0, и все это начало работать. Ни один из сообщений об ошибке не был чрезмерно очевиден.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top