Как преобразовать файл XML при публикации?

У меня есть XML-файл, который будет иметь разные значения в зависимости от среды, в которой он развернут. До сих пор я установил Slow Cheetah, и это позволило мне выполнить преобразование в файле xml, однако я не уверен, какой синтаксис использовать, поскольку он отличается от файла конфигурации.

Вот что у меня есть: AppConfig.Dev.xml

<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations 
 see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<config xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

    <application name="HSMED">
        <appHost>dev</appHost>  //not sure how to specify transform
    </application>
</config>

1 ответ

Синтаксис такой же, как и для файлов.config. Файлы конфигурации также написаны на XML, поэтому они должны работать правильно. Я дал образец на всякий случай.

<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations 
see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<config xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <application name="HSMED">
        <appHost xdt:Transform="Replace">PROD</appHost>
    </application>
</config>

Если вы хотите проверить это, вы можете также проверить файл csproj и убедиться, что он выглядит примерно так. Я заметил, что slowcheetah добавляет дочерние теги DependentUpon и TransformOnBuild к файлам, когда вы включаете их для преобразования. Не уверен, почему, хотя.

<None Include="Config\somefile.Prod.xml">
  <DependentUpon>somefile.xml</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>
<Content Include="Config\somefile.xml">
  <TransformOnBuild>true</TransformOnBuild>
</Content>
Другие вопросы по тегам