Как преобразовать файл 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>