【问题标题】:Update DLL RC info from powershell从 powershell 更新 DLL RC 信息
【发布时间】:2016-10-28 09:50:04
【问题描述】:

我正在尝试直接从 Powershell 更新/添加 DLL 中的一些 RC 信息。

我找到了如何获取它,但我没有找到如何设置一些字段,如 SpecialBuildPrivateBuild

PS C:\> (gi .\mydll.dll).VersionInfo | fl

OriginalFilename  : mydll.dll
FileDescription   : mydll.dll
...............................
PrivateBuild      : 32572
SpecialBuild      : NOT_HOTFIX
FileVersionRaw    : 17.3.0.12013
ProductVersionRaw : 17.3.0.12013

PS C:\> (gi .\mydll.dll).VersionInfo | gm


   TypeName : System.Diagnostics.FileVersionInfo

Name               MemberType     Definition
----               ----------     ----------
Equals             Method         bool Equals(System.Object obj)
GetHashCode        Method         int GetHashCode()
GetType            Method         type GetType()
ToString           Method         string ToString()
Comments           Property       string Comments {get;}
.................................................
PrivateBuild       Property       string PrivateBuild {get;}
ProductBuildPart   Property       int ProductBuildPart {get;}
ProductMajorPart   Property       int ProductMajorPart {get;}
ProductMinorPart   Property       int ProductMinorPart {get;}
ProductName        Property       string ProductName {get;}
ProductPrivatePart Property       int ProductPrivatePart {get;}
ProductVersion     Property       string ProductVersion {get;}
SpecialBuild       Property       string SpecialBuild {get;}
FileVersionRaw     ScriptProperty System.Object FileVersionRaw {get=New-Object System.Version -ArgumentList @(...
ProductVersionRaw  ScriptProperty System.Object ProductVersionRaw {get=New-Object System.Version -ArgumentList @(...

如您所见,属性只能在此处获取。

那么你知道我如何更新这些字段吗?

提前感谢您的帮助;)

【问题讨论】:

    标签: powershell dll versioninfo


    【解决方案1】:

    可以使用 Resource Hacker 或 verpatch 等工具更新字段,但不建议这样做。如果 dll 是你的,那么在编译之前更新它会容易得多。

    修补已编译的 dll 的缺点之一是,如果已签名,则签名将不再有效。此外,有时修补可能会导致 dll 损坏。

    你有什么特别的原因要在编译后更改它吗?

    【讨论】:

    • 我已经在构建管道期间使用 verpatch 更新 DLL ;)。但在这里,这只是为了我的知识。我只是想知道这是否可以在没有其他工具或一些代码的情况下直接来自 PS。
    • 不,除非您有充分的理由,否则一般情况下这是不可能的,并且非常不鼓励这样做。
    • 好的,那么在自动构建过程中更新内部版本号的好方法是什么?在构建之前使用一些正则表达式更新 rc 文件?
    • 是的。这取决于您使用的平台(.Net 或 Java 或 C++),以及您的构建服务器。每个平台和几乎每个构建服务器都可以设置此信息。
    猜你喜欢
    • 2018-12-04
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多