SlowCheetah не трансформируется в Release Build VS 2017 - PullRequest
0 голосов
/ 16 апреля 2020

Я использую Visual Studio 2017 и не могу заставить мои преобразования Slow Cheetah работать над сборкой Release . Тем не менее, с расширением Visual Studio SlowCheetat преобразование отображается правильно.

Я прошел:

  1. https://github.com/microsoft/slow-cheetah/blob/master/doc/transforming_files.md
  2. SlowCheetah не преобразует файл при сборке
  3. https://docs.microsoft.com/en-us/previous-versions/dd465326 (v = vs.100)? Redirectedfrom = MSDN # using-transform-and-locator-attribute-on-Отдельные элементы
  4. https://marketplace.visualstudio.com/items?itemName=vscps.SlowCheetah-XMLTransforms Некоторые примеры:
  5. https://github.com/microsoft/slow-cheetah/blob/master/samples/Wpf.Transform/contacts.Release.xml
  6. https://github.com/microsoft/slow-cheetah/blob/master/samples/Wpf.Transform/app.Release.config

Учитывая Я установил расширение Visual Studio SlowCheetah, которое позволяет мне добавлять и просматривать трансформацию файлов в моем проекте. Предварительный просмотр работает правильно , и я вижу необходимые мне преобразования / изменения.

Для преобразований во время сборки необходим пакет SlowCheetah NuGet.

Пакеты Nuget для решения

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="...Removed some for clarity...
  <package id="Microsoft.VisualStudio.SlowCheetah" version="3.2.26" targetFramework="net461" developmentDependency="true" />
  <package id="...
</packages>

App.Config (очищенный от конфиденциальных данных) в моем проекте выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <section name="ApplicationSettings" type="System.Configuration.NameValueSectionHandler" />
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <quartz>
    <add key="quartz.jobStore.misfireThreshold" value="10000" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.scheduler.instanceName" value="BibbyAggregatorTaskScheduler" />
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
  </quartz>  
  <ApplicationSettings>   
    <add key="GangwayMovementApi" value="http://localhost:3000/api/gangwaymovement" />
    <add key="DailyPobApi" value="http://localhost:3000/api/dailypob" />    
    <add key="GangwayMovementCronSchedule" value="0 0/1 * * * ?" />
    <add key="DailyPobCronSchedule" value="0/15 * * * * ?" />    
    <add key="DbMaintenanceCronSchedule" value="10 0/2 * * * ?" />                
    <add key="GangwayMovementsStartDateTime" value="2020-03-17 16:00:45.587" />    
    <add key="httpPostTimeoutDurationMilliseconds" value="5000" />
  </ApplicationSettings>
  <connectionStrings>
    <add name="EpicBibbyAggregatorService.Properties.Settings.EpicConnectionString"
      connectionString="Data Source=127.0.0.1\aninstance;Initial Catalog=mydb;Persist Security Info=True;User ID=ABC;Password=DEF"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <entityFramework>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
    <remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /></DbProviderFactories>
  </system.data>
</configuration>

Файл App.Release.config выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <ApplicationSettings>
    <add key="GangwayMovementApi" value="http://localhost:3000/api/gangwaymovement" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    <add key="DailyPobApi" value="http://localhost:3000/api/dailypob" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    <add key="GangwayMovementCronSchedule" value="0 0/1 * * * ?" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    <add key="DailyPobCronSchedule" value="30 58 23 * * ?" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    <add key="DbMaintenanceCronSchedule" value="10 0 0/1 * * ?" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    <add key="GangwayMovementsStartDateTime" value="2020-04-01 00:00:00.000" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    <add key="httpPostTimeoutDurationMilliseconds" value="5000" xdt:Transform="Replace" xdt:Locator="Match(key)" />
  </ApplicationSettings>
  <connectionStrings xdt:Transform="Replace">
    <add name="EpicBibbyAggregatorService.Properties.Settings.EpicConnectionString" 
         connectionString="Data Source=PRODDBINSTANCE;Initial Catalog=ProdDB;Persist Security Info=True;User ID=PRODBUSER;Password=PRODDBPASSWORD"
         providerName="System.Data.SqlClient" xdt:Transform="Replace" xdt:Locator="Match(name)" />
  </connectionStrings>
</configuration>

Если я редактирую свой файл .csproject, я вижу следующую ItemGroup - которая выглядит правильно.

<None Include="App.config">
  <SubType>Designer</SubType>
  <TransformOnBuild>true</TransformOnBuild>
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="App.Debug.config">
  <DependentUpon>App.config</DependentUpon>
  <IsTransformFile>true</IsTransformFile>
  <SubType>Designer</SubType>
</None>
<None Include="App.Release.config">
  <DependentUpon>App.config</DependentUpon>
  <IsTransformFile>true</IsTransformFile>
  <SubType>Designer</SubType>
</None>

Любые мысли приветствуются.

Кстати, если вы попытаетесь открыть: http://schemas.microsoft.com/XML-Document-Transform ссылка не доступна? Может ли это быть причиной?

Каким должно быть действие сборки для файла App.config? Не установлено.

App.Config Setings

Спасибо, Крейг

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...