如何创建MSBuild目标文件来部署文件?

时间:2012-09-05 14:25:43

标签: deployment msbuild publish

鉴于我有一个在\bin\out生成文件的后期构建过程,我如何使用MSBuild目标文件来声明该目录中的所有文件(递归地)应该在Web部署期间发布?

1 个答案:

答案 0 :(得分:0)

我们将其分为两部分:

首先,构建Web项目:

<Target Name="BuildWeb">
    <MSBuild Projects="WebExtranet\WebExtranet.csproj"
             Properties="Configuration=$(Environment);DeployOnBuild=True;CreatePackageOnPublish=True;BaseIntermediateOutputPath=..\$(DistDir)\Web\" />
</Target>

然后使用它来发布到本地IIS(您可能需要调整msdeploy命令以满足您的需要)

<Target Name="DeployWeb">
    <ItemGroup>
        <PackageSourceDir Include='$(DistDir)\Web\$(Environment)\Package\WebExtranet.zip' />
    </ItemGroup>

    <Message Text="Package path: %(PackageSourceDir.FullPath)" />

    <Exec Command="&quot;c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe&quot; -verb:sync -allowUntrusted -source:package=&quot;%(PackageSourceDir.FullPath)&quot; -setParam:'IIS Web Application Name'='My Web App' -dest:auto"/>
</Target>

常见的陷阱:

  • msbuild版本非常重要。我正在使用V3。
  • 您必须已在IIS上创建Web应用程序。只需要做一次。

请注意,$(Environment)变量是构建配置。我有几个,但运行第一个目标并检查创建的文件夹结构。然后调整脚本。