【问题标题】:MSBuild project deploy to local folder with config transformedMSBuild 项目部署到本地文件夹并转换配置
【发布时间】:2012-04-09 05:21:08
【问题描述】:

我在尝试找到正确的方法来使用 MSBuild 构建 Web 项目并输出仅包含可部署文件(即没有 .cs、.csproj、.Debug.config 等)但发布到的项目时遇到了麻烦一个本地文件夹,然后我可以将其通过 FTP、RoboCopy (或其他)传输到辅助位置。

发布的输出必须具有根据指定配置预先转换的 Web.config 文件,并且输出中包含转换配置文件(例如 Web.Debug.config)。我不需要任何花哨的发布到 IIS、数据库部署或类似的东西,我只想要干净的文件系统输出,然后我可以测试。请注意,这无法使用可视化工具来完成,因为我想将其作为自动构建过程的一部分来运行。

我可以生成一个 web 部署包,但我无法让 WebDeploy 工作,因为它似乎不再处理引用的命令行选项(似乎是某种错误)并且目录结构有空格,所以我希望使用 MSBuild 完成整个任务,因为 MSBuild 似乎具有转换配置文件 (TransformXml) 的本机能力,这是我将使用的唯一真正的正确部署功能。

【问题讨论】:

    标签: deployment msbuild


    【解决方案1】:

    终于明白了。以下构建脚本可以解决问题:

    <?xml version="1.0"?>
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>
        <PropertyGroup>
            <OutputDir>obj\website-output</OutputDir>
        </PropertyGroup>
        <Target Name="PrepareDeploy">
            <ItemGroup>
                <DeployableFiles Include="App_Code/**/*.*;App_Data/**/*.*;Areas/**/Views/**/*.*;bin/**/*.*;Views/**/*.*;*.aspx;*.asax;*.html;*.htm;sitemap.xml;*.ico;*.png" Exclude="App_Data/**/*.log" />
            </ItemGroup>
            <RemoveDir ContinueOnError="true" Directories="$(OutputDir)" />
            <MSBuild Projects="Website.csproj" />
            <MakeDir ContinueOnError="true" Directories="$(OutputDir)" />
            <Copy SourceFiles="@(DeployableFiles)" DestinationFiles="@(DeployableFiles->'$(OutputDir)\%(RelativeDir)%(Filename)%(Extension)')" />
            <TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="$(OutputDir)\web.config" />
        </Target>
    </Project>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-02
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多