【问题标题】:How to create MSBuild targets file to deploy files?如何创建 MSBuild 目标文件来部署文件?
【发布时间】:2012-09-05 14:25:42
【问题描述】:

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

【问题讨论】:

    标签: deployment msbuild publish


    【解决方案1】:

    让我们把它分成两部分:

    首先,构建 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) 变量是构建配置。我有几个,但运行第一个目标并检查创建的文件夹结构。然后调整脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多