我已经在Azure上使用TFS在线进行源代码控制,使用VS 2012设置了asp.net网站。我正在尝试使用VS 2012的新发布配置文件和MSBuild来复制文件。阅读此文章Visual Studio 2012 Web Deployment Projects are Dead – Long Live Publishing Profiles,其中Doug说您可以在发布配置文件中使用构建脚本。
因此,我设置了一个测试,在我的.csproj中进行本地构建。我只是简单地将robots.txt文件从根目录复制到css目录。这是我的测试。我在TFS Build Process模板下的process > 6. Publishing -- Azure Website, Web Deploy Publish Profile中设置了我的pubxml。
我把这段代码放到了我的pubxml文件里,但是什么也没有发生。我做错了什么吗? 在Azure上构建后是否可以复制文件? 附加信息 日志文件包含以下行,所以我确定发布配置文件正在运行。
以下是 Azure 默认构建模板使用的构建步骤:
因此,我设置了一个测试,在我的.csproj中进行本地构建。我只是简单地将robots.txt文件从根目录复制到css目录。这是我的测试。我在TFS Build Process模板下的process > 6. Publishing -- Azure Website, Web Deploy Publish Profile中设置了我的pubxml。
<Target Name="AfterBuild">
<Copy SourceFiles="$(ProjectDir)robots.txt" DestinationFolder="$(ProjectDir)css\" />
</Target>
我把这段代码放到了我的pubxml文件里,但是什么也没有发生。我做错了什么吗? 在Azure上构建后是否可以复制文件? 附加信息 日志文件包含以下行,所以我确定发布配置文件正在运行。
AfterBuild:
Creating directory "C:\a\src\...\css".
Copying file from "C:\a\src\...\robots.txt" to "C:\a\src\...\css\robots.txt".
以下是 Azure 默认构建模板使用的构建步骤:
- 验证解决方案配置:
- 准备构建:
- 核心编译:
- _CopyFilesMarkedCopyLocal:
- 复制文件到输出目录:
- 生成目标框架Moniker属性:
- 核心编译:
- _CopyFilesMarkedCopyLocal:
- 复制文件到输出目录:
- _CopyWebApplicationLegacy:
- 验证全局包设置:
- 从中间程序集收集文件:
- 从内容收集文件:
- 从带有目标路径的中间卫星程序集收集文件:
- 从引用中收集文件:
- 从所有额外引用文件中收集文件:
- 从_binDeployableAssemblies收集文件:
- 管道收集文件阶段:
- 排除生成的调试符号:
- 预转换WebConfig:
- TransformWebConfigCore:
- 后转换WebConfig:
- 预配置文件转换WebConfig:
- 管道转换阶段:
- 处理发布数据库设置:
- 预自动参数化WebConfig连接字符串:
- AutoParameterizationWebConfigConnectionStringsCore:
- 后自动参数化WebConfig连接字符串:
- 管道Msdeploy特定转换阶段:
- 验证发布配置文件设置:
- 将所有文件复制到单个文件夹进行Msdeploy:
- 将所有文件复制到一个文件夹进行Msdeploy:
- 打包:
- 生成Msdeploy清单文件:
- 使用清单文件打包:
- 生成示例部署脚本:
- 管道部署阶段:
- 构建之后:
看起来Azure在“31.将所有文件复制到单个文件夹以进行Msdeploy”步骤期间打包了所有文件。运行复制命令似乎在AfterBuild步骤中太晚了。我将复制命令移动到目标“BeforeBuild”,但文件仍未出现在CopyAllFilesToOneFolderForMsdeploy步骤中。