Inno Setup卸载程序VersionInfo(Inno Setup uninstaller VersionInfo)
我为我的安装程序使用Inno Setup。 我在
unins000.exe
了VersionInfo的问题。 为了在安装程序中填充VersionInfo,我使用了指令AppPublisher
,AppCopyright
等。但它不会影响安装卸载程序unins000.exe
。谷歌和帮助对这个问题一无所知。 我调查了Inno安装源,发现仅为安装文件添加了VersionInfo:
{ Update version info } AddStatus(SCompilerStatusUpdatingVersionInfo); UpdateVersionInfo(ExeFile, VersionInfoVersion, VersionInfoProductVersion, VersionInfoCompany, VersionInfoDescription, VersionInfoTextVersion, VersionInfoCopyright, VersionInfoProductName, VersionInfoProductTextVersion); { For some reason, on Win95 the date/time of the EXE sometimes doesn't get updated after it's been written to so it has to manually set it. (I don't get it!!) } UpdateTimeStamp(ExeFile.Handle); finally ExeFile.Free; end; end; { Sign } if SignTools.Count > 0 then begin AddStatus(SCompilerStatusSigningSetup); Sign(ExeFileName); end; except EmptyOutputDir(False); raise; end;
但我无法在卸载程序编译代码中找到此例程。
有人知道,有可能将版本信息发送到
unins000.exe
吗?谢谢!
I use Inno Setup for my installers. I have a problem with VersionInfo inside
unins000.exe
. For filling VersionInfo in installer I used directivesAppPublisher
,AppCopyright
and etc. But it doesn't affect setup uninstallerunins000.exe
.Google and help doesn't know anything about this issue. I investigated Inno Setup sources and found appending VersionInfo just for setup file:
{ Update version info } AddStatus(SCompilerStatusUpdatingVersionInfo); UpdateVersionInfo(ExeFile, VersionInfoVersion, VersionInfoProductVersion, VersionInfoCompany, VersionInfoDescription, VersionInfoTextVersion, VersionInfoCopyright, VersionInfoProductName, VersionInfoProductTextVersion); { For some reason, on Win95 the date/time of the EXE sometimes doesn't get updated after it's been written to so it has to manually set it. (I don't get it!!) } UpdateTimeStamp(ExeFile.Handle); finally ExeFile.Free; end; end; { Sign } if SignTools.Count > 0 then begin AddStatus(SCompilerStatusSigningSetup); Sign(ExeFileName); end; except EmptyOutputDir(False); raise; end;
But I can't found this routines in uninstaller compile code.
Anybody know, is possible place version info to
unins000.exe
?Thank you!
原文:https://stackoverflow.com/questions/47397961
最满意答案
另外,看看YAPE :: Regex :: Explain和它的web前端 。 无价。
Take a look at Regexp::Common
Also, look at YAPE::Regex::Explain and the web front end to it. Invaluable.
相关问答
更多-
像这样的东西应该这样做: /^KNOWN PART (\w+) (.*)$/ Something like this should do: /^KNOWN PART (\w+) (.*)$/
-
看看Regexp :: Common 另外,看看YAPE :: Regex :: Explain和它的web前端 。 无价。 Take a look at Regexp::Common Also, look at YAPE::Regex::Explain and the web front end to it. Invaluable.
-
如果你想要一个通用的解决方案并且你不想努力修复String :: Random,你可以使用大量的猴子 。 use strict; use warnings qw( all ); use feature qw( say ); my $pattern = qr/^[A-Z]{6}[A-Z2-9][A-NP-Z0-9](?:[A-Z0-9]{3})?\z/; my $min_len = 0; my $max_len = 15; my @syms = map chr, 0x20..0x7E; my $s; ...
-
正则表达式是正确的。 (尽管如此,外部括号是不必要的)。 在正则表达式测试程序中,如果您使用多行字符串进行测试,则需要使用m和g修饰符: http : //regex101.com/r/tI3iA3 在你的代码中,这意味着: @var = $input =~ m/^.{9,10}$/mg; The regex is correct. (The outer parentheses are unnecessary, though). In a regex tester, if you're using a m ...
-
我不是Perl专家,但也许这可以帮助: #!/usr/bin/perl my $pattern = "["; # <-insert your pattern here my $regex = eval { qr/$pattern/ }; die "invalid regex: $@" if $@; 它返回这个: invalid regex: Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE / at test.pl line 4. 对于第 ...
-
您不需要编写自己的状态机来组合正则表达式。 研究正则表达式:汇编 。 它具有跟踪你的初始模式匹配的方法。 编辑: use strict; use warnings; use 5.012; use Regexp::Assemble; my $string = 'A123'; my $re = Regexp::Assemble->new(track => 1); for my $pattern (qw/ A(\d+) B(\d+) C(\d+) /) { $re->add($pattern); } ...
-
我错过了一些明显的东西吗? 你错过了正则表达式的工作方式。 它们不适用于shell文件名扩展的工作原理。 你的正则表达式使用*表示“前面一个字符的零以上”。 所以M*什么都不匹配,'M','MM','MMM'等。 您希望匹配“PM”,后跟任意数字的任何字符,后跟“C”。 正确的正则表达式是PM.*C 点( . )表示“匹配(几乎)任何字符”和(如上所述) *匹配零或更多。 我建议阅读Perl Regular Expression教程 。 am i missing something obvious here ...
-
在perl中使用正则表达式匹配的奇怪问题,备用尝试匹配(Strange issue with regex matching in perl, alternate attempts match)[2021-08-26]
摆脱m和g作为你的正则表达式的修饰语,他们没有做你想要的。 print "1. matched using regex\n" if ($str =~ /total-found=(\d+)/); print "2. matched using regex\n" if ($str =~ /total-found=(\d+)/); print "3. matched using regex\n" if ($str =~ /total-found=(\d+)/); print "4. matched using r ... -
如果你不想要正则表达式引擎, [e|edosipe]和[s|nosaes]应该是(e|edosipe)和(s|nosaes) ,或者(?:e|edopise)和(?:s|nosaes)捕获它们并弄乱你的$1 $2等的会计。 这里, (...)与Perl中的任何其他表达式中的括号分组非常相似。 [...]定义了一个字符类。 具体来说, [s|nosaes]匹配单个字符,即a , e , n , o , s和(或许令人惊讶,但元字符的特殊含义通常在[... ]内部被忽略), | 。 [e|edosipe] an ...
-
星号表示“ 零或更多 ”。 对于零情况, [0-9]*匹配空字符串。 您可以使用[0-9]+代替[0-9][0-9]* ,因为+表示“ 一个或多个 ”。 The asterisk means "zero or more". For the zero case, [0-9]* matches an empty string. Instead of [0-9][0-9]*, you can also use [0-9]+, because + means "one or more".