Заменить информацию о версии (C #) - PullRequest
0 голосов
/ 06 мая 2011

Я пытаюсь создать инструмент ресурса Version - в значительной степени потому, что недавно натолкнулся на класс FileVersionInfo. Я использую FileVersionInfo.GetVersionInfo для получения информации о версии исполняемого файла через код . Теперь я хотел бы использовать код для обновления информации о версии исполняемого файла. Я не был уверен, был ли встроенный класс, как для получения информации.

Если нет, у меня появилась идея использовать что-то похожее на следующий код, чтобы заменить информацию файла. Раньше я делал нечто подобное в VB6, откуда и пришла идея.

File.ReadAllBytes(@"\MyFile.exe")
// Convert the data into a string
// Use the Replace function to find original version information (obtained via FileVersionInfo), and replace it with new information to my liking.

Будет ли это работать? Если нет, у кого-нибудь есть идеи получше?

Спасибо, Evan

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Пожалуйста, не делайте то, что вы пытаетесь, даже если вам удастся найти способ.При включении сборок во многих случаях требуется номер версии.Если вы будете устанавливать версии для сборки по какой-то причине, это может нанести ущерб людям, которые полагаются на ваши сборки.

<compilation debug = "true" targetFramework = "4.0">
    <assemblies>
        <add assembly = "System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly = "System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly = "System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
</compilation>
0 голосов
/ 06 мая 2011

Не думаю, что чтение всего файла и сопоставление блока VERSIONINFO будет таким простым. Если я правильно помню, данные ресурса состоят не только из строк, здесь и там есть двоичные фрагменты.

Альтернативой может быть p / invoke BeginUpdateResource () , UpdateResource () и EndUpdateResource () . См. эту статью для примера кода и некоторых указателей.

...