【发布时间】:2012-09-05 14:25:42
【问题描述】:
鉴于我有一个在 \bin\out 中生成文件的后期构建过程,我如何使用 MSBuild 目标文件来声明该目录中的所有文件(递归)都应在 Web 部署期间发布?
【问题讨论】:
标签: deployment msbuild publish
鉴于我有一个在 \bin\out 中生成文件的后期构建过程,我如何使用 MSBuild 目标文件来声明该目录中的所有文件(递归)都应在 Web 部署期间发布?
【问题讨论】:
标签: deployment msbuild publish
让我们把它分成两部分:
首先,构建 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=""c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -allowUntrusted -source:package="%(PackageSourceDir.FullPath)" -setParam:'IIS Web Application Name'='My Web App' -dest:auto"/>
</Target>
常见的陷阱:
请注意,$(Environment) 变量是构建配置。我有几个,但运行第一个目标并检查创建的文件夹结构。然后调整脚本。
【讨论】: