Невозможно получить свойства exe-файла при использовании FileVersionInfo.GetVersionInfo() с .Net C#.C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно получить свойства exe-файла при использовании FileVersionInfo.GetVersionInfo() с .Net C#.

Сообщение Anonymous »

Код: Выделить всё

FileVersionInfo.GetVersionInfo
— это то, что мы использовали для просмотра свойств файла исполняемого файла или DLL.
Мы столкнулись с .exe, в котором мы могли увидеть файл свойства в разделе свойств, но GetVersionInfo() не смог их прочитать.
При создании этого .exe-файла использовался Pyinstaller.
например

Код: Выделить всё

VSVersionInfo(
ffi=FixedFileInfo(
filevers=(1, 2, 3, 4),
prodvers=(1, 2, 3, 4),
mask=0x3f,
flags=0x0,
OS=0x40004,
fileType=0x1,
subtype=0x0,
date=(0, 0)
),
kids=[
StringFileInfo(
[
StringTable(
u'040904B0',
[StringStruct(u'CompanyName', u'Your Company Name'),
StringStruct(u'FileDescription', u'Description of your program'),
StringStruct(u'FileVersion', u'1.2.3.4'),
StringStruct(u'InternalName', u'yourprogram'),
StringStruct(u'LegalCopyright', u'© Your Company Name. All rights reserved.'),
StringStruct(u'OriginalFilename', u'yourprogram.exe'),
StringStruct(u'ProductName', u'Your Product Name'),
StringStruct(u'ProductVersion', u'1.2.3.4')])
]),
VarFileInfo([VarStruct(u'Translation', [1033, 1200])])
]
)
Может ли кто-нибудь помочь мне решить эту проблему?
Мы смогли прочитать свойства файла, когда использовали version.dll методы GetFileVersionInfo() и VerQueryValue().
Мы пытаемся избегать этого подхода, поскольку он непрост.
Обновление 1 – 09.02.2024

[*]Я использую .Net Framework 4.8

< li>Я вижу все свойства файла из проводника

[*]Я использую GetFileVersionInfo() следующим образом
если (GetFileVersionInfo(filePath, handle, size, buffer))
{
if (VerQueryValue(buffer, @"\StringFileInfo\040904B0" + propertyName, out IntPtr ptr, out uint len))
{
string propertyValue = Marshal.PtrToStringAuto(ptr);
}


[*]Я запускаю код в ОС Windows 10



Подробнее здесь: https://stackoverflow.com/questions/789 ... ersioninfo
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»