Общие профили публикации с пользовательскими переменными

У нас есть сложная визуальная студия, публикующая профиль для разработчиков для развертывания файлов. Я хочу, чтобы все разработчики использовали один и тот же профиль публикации, хотя для каждого отдельного пользователя настраивались переменные, которые не регистрируются в системе контроля версий. Это возможно? Если так, то как?

<?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 &quot;$(SolutionDir)Foundation\Scripts\Powershell\CopyAssets.ps1&quot; $(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 &quot;$(SolutionDir)Foundation\Scripts\Powershell\CopyAssets.ps1&quot; $(SolutionDir) $(publishUrl)"/>
  </Target>
</Project>

Я удалил часть PipelineDepndsOn из своего профиля публикации и сделал это в целевом файле, как я определил выше.

Другие вопросы по тегам