Я пытаюсь динамически сгенерировать скрипт SQL, используя MSBuild. Сценарий отвечает за обновление некоторых таблиц и т. Д. После сборки.
Одним из требований этого сценария является получение примечаний к выпуску продукта из текстового файла и помещение их в оператор вставки в сценарии SQL.
Я использую TemplateFile для замены значений в шаблоне и создания сценария SQL, и он работает, как и ожидалось. Моя проблема начинается, когда я пытаюсь прочитать файл заметок о выпуске. Вот мой код:
<PropertyGroup>
<SQLFileTemplate>Update Product Table.template</SQLFileTemplate>
<SQLFileName>Update Product Table.sql</SQLFileName>
<ReleaseNotesFile>Release Notes.txt</ReleaseNotesFile>
</PropertyGroup>
<ReadLinesFromFile File="$(ReleaseNotesFile)">
<Output TaskParameter="Lines" ItemName="FileContents" />
</ReadLinesFromFile>
<ItemGroup>
<Tokens Include="releaseDate">
<ReplacementValue>$(buildDate)</ReplacementValue>
</Tokens>
<Tokens Include="releaseNotes">
<!--Escape the CR LF because MSBuild will replace them with semicolon-->
<ReplacementValue>@(FileContents, '%0a%0d')</ReplacementValue>
</Tokens>
<Tokens Include="releaseLevel">
<ReplacementValue>0</ReplacementValue>
</Tokens>
<Tokens Include="currentVersionInts">
<ReplacementValue>@(versionInts)</ReplacementValue>
</Tokens>
<Tokens Include="currentVersion">
<ReplacementValue>$(GuiVersion)</ReplacementValue>
</Tokens>
<Tokens Include="productVersionId">
<ReplacementValue>$(productId)</ReplacementValue>
</Tokens>
</ItemGroup>
<TemplateFile Template="$(SQLFileTemplate)" OutputFileName="$(SQLFileName)" Tokens="@(Tokens)" />
Когда я делаю это, файл читается, но он просто помещается в один интервал, и формат полностью исчезает. Я посмотрел на ReadTextFromFile в MSBuild.Community.Tasks.FileSystem, но не могу понять синтаксис.
Может ли кто-нибудь дать мне руку для этого?