gpt4 book ai didi

regex - 在 vdproj 上使用 MSBuild.ExtensionPack.FileSystem.File 替换

转载 作者:行者123 更新时间:2023-12-03 11:00:35 24 4
gpt4 key购买 nike

我试图通过对我的 msbuild 脚本中的文件执行正则表达式来替换 Visual Studio 安装项目中保存的 ProductName。要进行正则表达式替换,我正在尝试使用 msbuild extension pack特别是它的文件任务。我的 msbuild 脚本中的目标如下所示:

<Target Name="CustomiseMsi">
<PropertyGroup>
<RegExPattern>
<![CDATA[(?:\""ProductName\"" = \""8:.*)]]>
</RegExPattern>
<RegExReplacement>
<![CDATA["\"ProductName\" = \"8:MyApp v1.0\""]]>
</RegExReplacement>
<RegExOutput></RegExOutput>
</PropertyGroup>

<MSBuild.ExtensionPack.FileSystem.File
TaskAction="Replace"
RegexPattern="$(RegExPattern)"
Replacement="$(RegExReplacement)"
Files="@(AbsolutePathToVdProjToParse)">
</MSBuild.ExtensionPack.FileSystem.File></Target>

当这个目标运行时,我得到以下输出,但文件保持不变。

CustomiseMsi:
Processing File Collection
Processing File: C:\pathHere\mySetup.vdproj

我这样做正确吗?有没有人以这种方式在 vdproj(或其他任何东西)上更新正则表达式?

最佳答案

我遇到了同样的问题,在尝试了一些东西之后,我让它工作了......

<MSBuild.ExtensionPack.FileSystem.File TaskAction="Replace" 
TextEncoding="ASCII" RegexPattern='"ProductVersion" = "8:.*"'
Replacement='"ProductVersion" = "8:$(Version)"'
Files="%(Solution.DeploymentProject)"/>

这将简单地将 ProductVersion 字符串替换为我在 Solution.DeploymentProject 变量中的版本。

我认为您根本不需要弄乱 CDATA。

关于regex - 在 vdproj 上使用 MSBuild.ExtensionPack.FileSystem.File 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5633625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com