我有一个名为_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>
这解决了我的问题
答案 0 :(得分:0)
从其他其他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