Общие профили публикации с пользовательскими переменными
У нас есть сложная визуальная студия, публикующая профиль для разработчиков для развертывания файлов. Я хочу, чтобы все разработчики использовали один и тот же профиль публикации, хотя для каждого отдельного пользователя настраивались переменные, которые не регистрируются в системе контроля версий. Это возможно? Если так, то как?
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<DeleteExistingFiles>False</DeleteExistingFiles>
<PipelineDependsOn>
CopyAssets;
$(PipelineDependsOn);
</PipelineDependsOn>
<publishUrl>C:\inetpub\wwwroot\local.MyApp\Website</publishUrl>
</PropertyGroup>
<Target Name="CopyAssets">
<Message Text="Inside of CopyAssets" Importance="high"/>
<Exec Command="%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -File "$(SolutionDir)Foundation\Scripts\Powershell\CopyAssets.ps1" $(SolutionDir) $(publishUrl)"/>
</Target>
</Project>
Это в простейшей форме. В этом примере я бы хотел, чтобы разработчики настраивали, например, публикацию URL для каждого пользователя, в идеале, в файле.user, если это возможно, или получали переменную или параметр откуда-то, что мы могли бы передать в этот профиль публикации.
1 ответ
Я решил это, создав .wpp.targets
файл. Я создал один в рамках проекта, который я публикую. Это позволило мне определить Powershell, который я запускаю для всех профилей публикации.
Это позволило мне позволить разработчикам определять свои собственные профили публикации и при этом запускать сценарий, позволяющий каждому пользователю использовать значение URL публикации.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PipelineDependsOn>
CopyAssets;
$(PipelineDependsOn);
</PipelineDependsOn>
</PropertyGroup>
<Target Name="CopyAssets">
<Message Text="Inside of CopyAssets" Importance="high"/>
<Exec Command="%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -File "$(SolutionDir)Foundation\Scripts\Powershell\CopyAssets.ps1" $(SolutionDir) $(publishUrl)"/>
</Target>
</Project>
Я удалил часть PipelineDepndsOn из своего профиля публикации и сделал это в целевом файле, как я определил выше.