能否在一个命令中通过MSDeploy将MSBuild打包并部署到IIS 6?

能否在一个命令中通过MSDeploy将MSBuild打包并部署到IIS 6?,msbuild,teamcity,msdeploy,Msbuild,Teamcity,Msdeploy,以下是我想做的: 构建一个以“包”为目标的现有.csproj 使用MSDeploy将包发布到IIS 6服务器 这是为TeamCity构建和发布的,我正试图在一个步骤中配置它。我可以创建一个自定义构建文件,但我正在尝试在不向应用程序添加任何其他配置的情况下解决这个问题 有很多关于MSBuild参数的示例,它们可以通过WMSVC进行发布,但这与IIS 6无关。当依赖于MsDepSvc时,是否有可以使用的等效参数?这是可能的,还是留给我的是自定义生成脚本或包生成,然后是发布生成?您可以修改现有的.cs

以下是我想做的:

  • 构建一个以“包”为目标的现有.csproj
  • 使用MSDeploy将包发布到IIS 6服务器
  • 这是为TeamCity构建和发布的,我正试图在一个步骤中配置它。我可以创建一个自定义构建文件,但我正在尝试在不向应用程序添加任何其他配置的情况下解决这个问题


    有很多关于MSBuild参数的示例,它们可以通过WMSVC进行发布,但这与IIS 6无关。当依赖于MsDepSvc时,是否有可以使用的等效参数?这是可能的,还是留给我的是自定义生成脚本或包生成,然后是发布生成?

    您可以修改现有的.csproj文件以添加所需的任何其他目标(它只是一个MSBuild文件),并可以通过不同的MSDeploy提供程序(,或通过共享)发布到IIS6服务器

    虽然这可以通过在项目的MSBuild中添加目标来实现,但我建议您将这两个活动拆分为两个单独的目标。通过将它们拆分为两个单独的目标,您仍然可以将它们一起调用
    msbuild/t:Package;部署
    ,但也可以单独调用它们


    这将允许您创建一个部署包,并让TeamCity将其作为构建的工件。然后,您可以从TeamCity下载此软件包,并将其独立部署到任何服务器,即使您是自动部署的。如果TeamCity也创建了您的发布版本,您知道您的生产部署是完美的,我希望在不修改csproj的情况下执行此操作,但是您关于创建一个仅用于部署的目标,然后在命令行上调用after包的观点非常简洁。我以前有一个构建文件,在DependsOnTargets属性中引用了多个目标,因此包可以作为人工制品使用,但您的方法更简洁,只要项目中没有多个网站需要通过单个构建操作进行部署。