Documentation 如何将自定义提供程序集成到Microsoft Web部署工具中?

Documentation 如何将自定义提供程序集成到Microsoft Web部署工具中?,documentation,provider,web-deployment,Documentation,Provider,Web Deployment,我正在尝试使用自定义提供程序扩展Microsoft Web部署工具和MSDeploy,因为我希望在目标部署计算机上运行自定义任务,作为过程的一部分。在自定义提供者开发之外,通用文档非常好,但是用于进行任何扩展的文档似乎都不存在 我已经对此进行了几天的研究,发现了一些零碎的东西,使我能够在没有任何真正文档的情况下深入研究这个过程。我几乎用黑客破解了整个过程,但现在我有一个最后的问题:MSDeploy无法识别我的自定义提供者 我创建了两个类,一个扩展了Microsoft.Web.Deployment

我正在尝试使用自定义提供程序扩展Microsoft Web部署工具和MSDeploy,因为我希望在目标部署计算机上运行自定义任务,作为过程的一部分。在自定义提供者开发之外,通用文档非常好,但是用于进行任何扩展的文档似乎都不存在

我已经对此进行了几天的研究,发现了一些零碎的东西,使我能够在没有任何真正文档的情况下深入研究这个过程。我几乎用黑客破解了整个过程,但现在我有一个最后的问题:MSDeploy无法识别我的自定义提供者

我创建了两个类,一个扩展了Microsoft.Web.Deployment.DeploymentProviderFactory(它的Name和FriendlyName属性都被我的自定义提供程序“阿基米德”的名称覆盖);另一个扩展了Microsoft.Web.Deployment.DeploymentObjectProvider,它还有一个覆盖的名称属性“阿基米德”。我是通过遵循您可以在网上找到的自定义BatchProvider示例来实现这一点的。看起来是这样的:

阿基米德ProviderFactory(它扩展了DeploymentProviderFactory,并将Deployment ProviderFactory属性分配给类):

阿基米德Provider类扩展了DeploymentObjectProvider,并具有以下功能:

public override string Name
{
    get { return "archimedes"; }
}
在我的sourcemanifest.xml文件中,我添加了一个条目:

<archimedes path="..." />
返回以下内容:

    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.
因此,除了这一事实之外,对于自定义提供程序开发,似乎没有一致的、集中的文档来源(有人知道某个地方吗,请告诉你是否找到了),我的主要问题是,出于某种原因,Visual Studio将从我转储到Extensibility文件夹的程序集文件中看到并调用我的提供程序工厂,但是实际的msdeploy/webdeploy没有看到它。有人有什么想法吗


非常感谢……

好的,这是一个简单的错误,尽管这是一个不明显的错误,因为包构建部分正确地访问了代码,并从我的提供程序程序集调用了它。问题在于,由于web应用程序中几乎所有内容都以4.0框架为目标,因此我用自定义提供程序代码添加的类库项目也以4.0框架为目标。我必须将目标框架设置为2.0,然后它就开始工作了。没有一个错误报告过于明显。

您可以在自定义提供程序上调用远程Web部署吗?你有没有做什么特别的事情让它运行?
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.