2016-10-28 1 views
0

Я пытаюсь обновить/добавить некоторую информацию RC в DLL непосредственно из Powershell.Обновить информацию DLL RC от powershell

Я нашел, как я могу его получить, но я не нашел, как установить какое-то поле, как SpecialBuild или PrivateBuild.

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

обновления полей можно с помощью инструмента, как Hacker Resource, или verpatch, но это не рекомендуется. Если dll принадлежит вам, гораздо проще обновить его перед компиляцией.

Одной из недостатков исправленной скомпилированной DLL является то, что если она подписана, подпись больше не будет действительной. Кроме того, иногда исправление может привести к повреждению dll.

Есть ли какая-то особая причина, по которой вы хотите изменить ее после компиляции?

+0

Я уже использую verpatch для обновления DLL во время моего построения конвейера;). Но здесь, это только для моих знаний. Я просто хочу знать, возможно ли это без других инструментов или какого-либо кода, прямо из PS. – David

+1

Нет, это невозможно и очень не рекомендуется делать в целом, если у вас нет веской причины. –

+0

Хорошо, так что это хороший способ обновить номер сборки в автоматическом процессе сборки? Обновлять файл rc перед сборкой с помощью некоторого регулярного выражения? – David

 Смежные вопросы

  • Нет связанных вопросов^_^