【发布时间】:2011-10-03 11:51:55
【问题描述】:
我正在使用 web 部署 API 来部署一个 web 包(.zip 文件,由 MSDeploy.exe 创建)以编程方式将包发布到服务器(我们需要在发布包之前做一些其他事情这就是为什么我们不使用 MSDeploy.exe 一次性完成所有工作的原因)。
这是我的代码。我的问题实际上是要澄清执行此操作时发生的情况。在包参数 XML 文件中,我指定了应用程序名称(“默认网站”),但仅此而已,其中没有指定其他参数。从测试服务器看来,包已成功部署,但我的问题是我正在部署的服务器上的任何其他设置在我不知情的情况下被更改,是否已发布任何默认设置等?我可能不知道的安全设置、目录浏览等内容?这里的代码似乎部署了包,但是当我不确定这个 API 是如何工作的时候,我很担心在生产环境中使用它。 MS 文档没有帮助(实际上更像是不存在)。
DeploymentChangeSummary changes;
string packageToDeploy = "C:/MyPackageLocation.zip";
string packageParametersFile = "C:/MyPackageLocation.SetParameters.xml";
DeploymentBaseOptions destinationOptions = new DeploymentBaseOptions()
{
UserName = "MyUsername",
Password = "MyPassword",
ComputerName = "localhost"
};
using (DeploymentObject deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.Package,
packageToDeploy))
{
deploymentObject.SyncParameters.Load(packageParametersFile);
DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
syncOptions.WhatIf = false;
//Deploy the package to the server.
changes = deploymentObject.SyncTo(destinationOptions, syncOptions);
}
如果有人能澄清这个 sn-p 应该将包部署到服务器上的网站应用程序,而不更改任何现有的服务器设置(除非在 SetParameters.xml 文件中指定),那将非常有用。任何关于使用 API 的好资源或关于 Web 部署如何在幕后工作的解释也将不胜感激!
【问题讨论】:
标签: api msbuild msdeploy web-deployment