azure-devops - Azure DevOps MSBuild 在构建期间重命名文件
问题描述
我有一个名为 _app_offline.htm 的文件,我正在使用 MSBuild 将其重命名为 app_offline.htm。这是一个老式的 asp.net 网站,因此 MSBuild 使用的是 website.publishproj:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="RenameAppOffline">
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<RenameFile Include="_app_offline.htm" />
</ItemGroup>
<Import Project="$(_WebPublishTargetsPath)\Web\Microsoft.WebSite.Publishing.targets" />
<Target Name="RenameAppOffline">
<Message Text="Rename: @(RenameFile) -> @(RenameFile -> Replace('_app_offline', 'app_offline'))" Importance="High" />
<Move SourceFiles="@(RenameFile)" DestinationFiles="@(RenameFile -> Replace('_app_offline', 'app_offline'))" />
</Target>
</Project>
命令是:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
在构建日志中,我可以看到:
将文件从“_app_offline.htm”移动到“app_offline.htm”。
当我下载工件时,_app_offline.htm 不存在,但是 app_offline.htm 也不存在且未部署。
我的问题是为什么缺少 app_offline.htm 以及如何将其添加到工件中?
编辑 2020-06-29:
我更新了 RenameAppOffline 如下:
<Target Name="RenameAppOffline" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy" Condition="'$(Configuration)' == 'Release'">
<Message Text="Rename: @(RenameFile) -> @(RenameFile -> Replace('_', ''))" Importance="High" />
<Copy SourceFiles="@(RenameFile)" DestinationFiles="@(RenameFile -> Replace('_', $(_PackageTempDir)\))" OverwriteReadOnlyFiles="true" />
</Target>
这解决了我的问题
解决方案
从其他各种 StackOverflow 问题中,我能够拼凑出以下解决方案:
<Target Name="RenameAppOffline" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy" Condition="'$(Configuration)' == 'Release'">
<Message Text="Rename: @(RenameFile) -> @(RenameFile -> Replace('_', ''))" Importance="High" />
<Copy SourceFiles="@(RenameFile)" DestinationFiles="@(RenameFile -> Replace('_', $(_PackageTempDir)\))" OverwriteReadOnlyFiles="true" />
</Target>
次要挑战之一是了解可用的环境变量 - 将以下内容添加到 MSBuild 命令提供了我需要的所有信息:
-v:diag
推荐阅读
- python - 安装 Homebrew for Mac 中未定义的局部变量或方法是什么?
- elasticsearch - 无法从 jdbc 聚合数据以输出单个文档
- python - 具有多个长时间运行的任务的 Python asyncio 不会产生事件循环错误
- python-3.x - 条形图。我需要从文件中读取数据,列将是轴或需要 3 维来解释数据/
- java - 通过蓝牙将超声波传感器的数据从 Arduino 发送到 Android
- netty - 虽然不保证 ByteBuf 是线程安全的,但是这个用例可以吗?
- c++ - C ++中的后缀不像我期望的那样表现
- python - 如何比较两个数据框列以查看一列中的值是否在另一列的对象中
- android - 如何通过地图
作为使用 Retrofit2 的参数? - jenkins - 无法从詹金斯运行 terraform