从powershell更新DLL RC信息

时间:2016-10-28 09:50:05

标签: powershell dll versioninfo

我试图直接从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 @(...

正如您所看到的,属性只能在这里获得。

所以你知道如何更新这些字段吗?

先谢谢你的帮助;)

1 个答案:

答案 0 :(得分:1)

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

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

编辑后是否有任何特殊原因需要更改?