File io 使用MSBuild读取文件的内容(格式正确)
我正在尝试使用MSBuild动态生成SQL脚本。脚本负责更新一些表等。。。后期构建 此脚本的要求之一是从文本文件中检索产品的发行说明,并将其放入SQL脚本中的insert语句中 我正在使用TemplateFile替换模板中的值并生成SQL脚本,它按照预期工作。当我试图读取发行说明文件时,问题就开始了。以下是我的代码:File io 使用MSBuild读取文件的内容(格式正确),file-io,msbuild,File Io,Msbuild,我正在尝试使用MSBuild动态生成SQL脚本。脚本负责更新一些表等。。。后期构建 此脚本的要求之一是从文本文件中检索产品的发行说明,并将其放入SQL脚本中的insert语句中 我正在使用TemplateFile替换模板中的值并生成SQL脚本,它按照预期工作。当我试图读取发行说明文件时,问题就开始了。以下是我的代码: <PropertyGroup> <SQLFileTemplate>Update Product Table.template</SQLFile
<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)" />
更新产品表.template
更新产品表.sql
发行说明.txt
$(构建日期)
@(文件内容,“%0a%0d”)
0
@(版本)
$(图形用户界面版本)
$(产品ID)
当我这样做的时候,文件被读取了,但它只是被放在一个空格里,格式完全消失了。我已经查看了MSBuild.Community.Tasks.FileSystem中的ReadTextFromFile,但无法理解语法
有人能帮我一下吗?看起来你想替换文件中的令牌?我认为你不需要读写这个文件。 您可以在扩展包中使用detokenise任务来实现相同的结果。见:
虽然我确实使用社区任务,但我认为扩展包比社区任务提供了更多 我看了Detokenise的文档,我不确定它是否是我想要的。。。它如何从文件中读取发行说明?我需要从本质上获取发行说明文件的(确切的)内容,并将它们放入SQL脚本中,替换SQL脚本模板(我已经定义)中的releaseNotes标记。然后我就没有什么帮助了。detokonise适用于普通令牌替换,但在文件中添加合并则是另一个问题。祝你好运这只是做同样事情的另一种方式。当文件编码混淆了unicode和utf-8时,我在readlinesfromfile中遇到了一些问题。