Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment MSBuild项目部署到本地文件夹并转换配置_Deployment_Msbuild - Fatal编程技术网

Deployment MSBuild项目部署到本地文件夹并转换配置

Deployment MSBuild项目部署到本地文件夹并转换配置,deployment,msbuild,Deployment,Msbuild,我很难找到正确的方法来使用MSBuild构建web项目,并仅使用可部署文件(即no.cs、.csproj、.Debug.config等)输出该项目,但将其发布到本地文件夹,然后通过FTP、RoboCopy(或其他方式)将其发送到辅助位置 发布的输出必须按照指定的配置预先转换Web.config文件,并且输出中不包括转换配置文件(例如Web.Debug.config)。我不需要发布到IIS、数据库部署或类似的任何东西,我只需要干净的文件系统输出,然后就可以进行测试。请注意,这不能使用可视化工具来完

我很难找到正确的方法来使用MSBuild构建web项目,并仅使用可部署文件(即no.cs、.csproj、.Debug.config等)输出该项目,但将其发布到本地文件夹,然后通过FTP、RoboCopy(或其他方式)将其发送到辅助位置

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


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

最终解决了它。下面的构建脚本实现了这一点:

<?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>

obj\网站输出