2016-10-28 60 views
0

我試圖直接從Powershell更新/添加一些RC信息在DLL中。從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

更新域可能與像資源黑客或verpatch的工具,但不推薦。如果dll是你的,那麼在編譯之前更新它就容易多了。

補丁編譯的dll的缺點之一是,如果它已簽名,簽名將不再有效。此外,有時修補可能會導致一個損壞的DLL。

是否有什麼特別的原因讓你想在編譯後改變它?

+0

我已經在我的構建管道中使用了verpatch來更新DLL;)。 但在這裏,這只是我的知識。我只是想知道如果這可能沒有其他工具或一些代碼,直接從PS。 – David

+1

不,一般情況下不可能,也不要灰心,除非你有很好的理由。 –

+0

好的,在自動構建過程中更新構建號碼的好方法是什麼?使用一些正則表達式構建之前更新rc文件? – David