У меня есть консольное приложение .net, которое я развертываю на сервере в среде CI Team City.Процесс сборки настраивается с помощью MSBuild, а приложение развертывается с использованием MSDeploy.
Само приложение развертывается нормально, но теперь я хочу развернуть коллекцию шаблонов (файлов) в том же целевом каталоге.У меня есть приложение WebApi, которое успешно развертывает тот же компонент вместе с шаблонами, используя MSBuild WebApplication.targets
, фиксируя цель CopyAllFilesToSingleFolderForMsdeploy
согласно этой записи .Тем не менее, я не могу заставить этот подход работать для консольного приложения.
Я также попробовал прямую копию файла в AfterBuild
target.
Соответствующий раздел .csproj
файл проекта выглядит так:
<Target Name="AfterBuild" Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PropertyGroup>
<TemplatePath>$([System.IO.Path]::Combine($([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory))), `MyApp.MyComponent\Messages\Views`))</TemplatePath>
</PropertyGroup>
<ItemGroup>
<Templates Include="$(TemplatePath)\**\*.cshtml" />
</ItemGroup>
<Message Text="Template Path = $(TemplatePath)" Importance="high" />
<Copy SourceFiles="@(Templates)" DestinationFolder="$(OutputPath)\Templates\%(Templates.RecursiveDir)" />
</Target>
Я делаю это неправильно?Это кажется достаточно простым делом, но я не могу найти способ заставить его работать.