既存の.exe、.dllのバージョン情報を設定するにはどうすればよいですか?


113

ビルドプロセスの一環として、コンパイルされたすべてのバイナリのバージョン情報を設定する必要があります。一部のバイナリには、(コンパイル時に追加された)バージョン情報が既にあり、一部にはありません。

次の情報を適用できるようにしたいと思います。

  • 会社名
  • 著作権表示
  • 商品名
  • 製品説明
  • ファイルのバージョン
  • 製品バージョン

これらの属性はすべてビルドスクリプトによって指定され、コンパイル後に適用する必要があります。これらは、C ++ Builder 2007でコンパイルされた標準のバイナリ(アセンブリではない)です。

これどうやってするの?


何のために使うResourceHackerを?どのように正確にタスクが設定されていますか?UpdateResource既存のpeのタスク更新バージョンの場合、どの機能で関数を使用するか
RbMm

これを試してみてください:alternateto.net/software/xn-resource-editor、これを行うリバースエンジニアリングツールがあると思います
i_thamary

回答:


59

Visual Studioはバッチプロセスではありませんが、ファイルリソースを追加/編集することもできます。

.EXEまたは.DLLで[ファイル]-> [開く]-> [ファイル]を使用するだけです。これは、ビルド後にバージョン情報を修正する場合や、最初からこれらのリソースを持たないファイルにバージョン情報を追加する場合に便利です。


8
私が試したところ、これは完璧に機能しました。バージョン情報が完全に欠落しているファイルの場合:Visual StudioでDLLを開いた後、編集>リソースの追加>バージョンに移動し、新規をクリックします。次に、新しい[バージョン]タブで、FILEVERSIONやPRODUCTVERSION、CompanyNameなどを変更します。ファイルを保存すれば、準備は完了です。
twasbrillig 2014年

2
@UweBaemayr。あなたが引用した答えは、私が同じポストビルドを行い、それを自動化したいのと同じように自動化できるのと同じように尋ねたいです。しかし、どうやって?
SteveScm

1
私の古いDelphi win32 dllの場合、これは機能しません。dll情報は正しく変更されていますが、健全性チェックを実行すると、破損していることがわかります。
2016

3
Windows 8、VS 2015でこれを試して(バージョン情報を追加)、すべてがWindowsエクスプローラーで問題ありませんが、実行可能ファイルが起動しなくなります。
Liviu

36

他の多くの回答とは異なり、このソリューションは完全に無料のソフトウェアを使用しています。

まず、次のResources.rcようなファイルを作成します。

VS_VERSION_INFO VERSIONINFO
    FILEVERSION    1,0,0,0
    PRODUCTVERSION 1,0,0,0
{
    BLOCK "StringFileInfo"
    {
        BLOCK "040904b0"
        {
            VALUE "CompanyName",        "ACME Inc.\0"
            VALUE "FileDescription",    "MyProg\0"
            VALUE "FileVersion",        "1.0.0.0\0"
            VALUE "LegalCopyright",     "© 2013 ACME Inc. All Rights Reserved\0"
            VALUE "OriginalFilename",   "MyProg.exe\0"
            VALUE "ProductName",        "My Program\0"
            VALUE "ProductVersion",     "1.0.0.0\0"
        }
    }
    BLOCK "VarFileInfo"
    {
        VALUE "Translation", 0x409, 1200
    }
}

次に、GoRCを使用して、次のように.resファイルにコンパイルします。

GoRC /fo Resources.res Resources.rc

(のミラーについては、以下の私のコメントを参照してくださいGoRC.exe

次に、CLIモードでResource Hackerを使用して、既存のに追加します.exe

ResHacker -add MyProg.exe, MyProg.exe, Resources.res,,,

それでおしまい!


1
@CharlesB私は自分自身に気づきましたが、それは正しいリンクです。誰かがウェブホストに支払うのを忘れたようです!これがバイナリです。これを私の公開Assemblaアカウントにミラーリングしました:assembla.com/code/danny-beckett/subversion/nodes/13/GoRC.exe
Danny Beckett

3
GoRCの代わりにMicrosoft Resource Compilerを使用することもできます。Windows SDKで利用できます。
Holistic Developer

Resource Hackerに賛成です。この回答に基づいて使用しました。すばらしいプログラムです。(プログラムやメーカーとの親和性はありません;-)
user2109254

@UweKeimこれはしばらく使用していませんが、必要なものだと確信しています。
Danny Beckett 2017

6
コマンドラインが少し変更されたようです:ResourceHacker.exe -open Source.dll -save Changed.dll -action addoverwrite -resource Version.resまた、ResourceHackerは.rcファイル自体をコンパイルできます:ResourceHacker.exe -open Version.rc -save Version.res -action compile
YusufTarıkGünaydınJun

23

または、Win32 exe / dllファイル用のフリーウェアStampVerをチェックアウトすることもできます。
ファイルと製品のバージョンのみが変更されますが、バージョンリソースがすでにある場合は変更されます。バージョンリソースが存在しない場合は追加できません。


19

rceditは比較的新しいものであり、コマンドラインから適切に機能します。https//github.com/atom/rcedit

$ rcedit "path-to-exe-or-dll" --set-version-string "Comments" "This is an exe"
$ rcedit "path-to-exe-or-dll" --set-file-version "10.7"
$ rcedit "path-to-exe-or-dll" --set-product-version "10.7"

Gruntを使用している場合に備えて、JavaScriptとGruntタスクからラップするNPMモジュールもあります。


5
rceditは既存のリソースのみを変更でき、新しいリソースは挿入できないことに注意してください
Bevan Collins

2
7zip sfxアーカイブでは機能しません:/ 7zipアーカイブ部分を切り取るだけです。
Mgamerz

1
これを試して、同じディレクトリにあるときにファイルをロードできないままにし続け、ツールがホストの構成に依存しているように見える
Arijoon

7zS.sfxスタブで動作します。最初の部分はVERSIONINFOを含み、自己解凍アーカイブを連結するために使用します。手動で7zS.exeの7zS.sfxの名前を変更してVisual Studioで編集することもできますが、ビルドごとにバージョン番号が変更されるため、内部にrceditステートメントを含むバッチファイルを使用して設定します。
AndresRohrAtlasInformatik

1
このツールは非常に厄介です。バイナリに適用する前にこのバグを確認してください:github.com/electron/rcedit/issues/51
Brun

14

このようなものはどうですか?

verpatch /va foodll.dll %VERSION% %FILEDESCR% %COMPINFO% %PRODINFO% %BUILDINFO%

完全なソースでここから入手できます


Verpatchは私にとって(/va /pvオプションを使用して)悪い製品バージョンリソースを作成しているようです。バージョンはWindowsエクスプローラで正しく表示されましたが、を使用してコードで取得すると、最後の文字が欠落していましたVerQueryValue。不良リソースを修正するために、私はこれを行いました:(1)DLLをResource Hackerにロードします。(2)バージョンリソースを表示します。(3)コンパイルします(何かを変更してから、変更してボタンを有効にします)。(4)保存します。
dan-gph 2013

verpatchは、私の開発ボックス上の私のDLLのx64バージョンとx86バージョンの両方に最適ですが、apveyorビルドプロジェクトではx64に対してのみ機能し、x86 dllに対してまったく何も実行しません。エラーも発生しません。何が起こるかについてのヒントはありますか?appveyorのログで、verpatchコマンドが実行されていること、エラーが発生していないこと、dllがなんらかの理由で置換されておらず、最後にバージョンスタンプがないことがわかります。x64では、すべての状況ですべてが正常に機能します。手がかりはありますか?
Ovi

@ Ovi-Wan Kenobi:私はapveyorが何であるかを知りませんでしたが、あなたの説明によると、それは私にはapveyorの問題のように見えます。最悪の場合、それが可能であれば、apveyor環境でのデバッグの準備をしますか?
filofel

10

このツールChangeVersion [1]があります

機能のリスト(ウェブサイトから):

  • コマンドラインインターフェース
  • .EXE、.DLLおよび.RESファイルのサポート
  • バージョンマスクに基づいてFileVersionおよびProductVersionを更新する
  • バージョンキー文字列の追加/変更/削除
  • ファイルフラグの調整(デバッグ、特別、プライベートなど)
  • プロジェクトファイルを更新する(.bdsproj | .bpr | .bpk | .dproj)
  • メインアプリケーションアイコンの追加/変更
  • 構成でiniファイルを使用する
  • Windows Vistaサポート(昇格が必要)
  • 継続的ビルド環境への統合が簡単

完全な開示:私はこのツールを書いた人を知っています。私は彼と一緒に働いていました。しかし、これは彼が高品質のソフトウェアを作っていることも知っていることを意味します


[1]リンクが停止しています。download.cnet.comにミラーリングされたバージョンがあるようです。


@Garethミラーリンクを追加しました。反対に、この答えが実用的な参考資料なしで何らかの価値があるとは思えません。
Wolf

5
2番目のリンクの結果、ツールが期限切れになります"Change Version v2012.9.6.0 - (C)2007-2012 The-Software-Box.com This trial version has expired"
Preet Sangha

2
コマンドラインで実行すると、「バージョンv2012.9.6.0を変更-(C)2007-2012 The-Software-Box.comこの試用版の有効期限が切れました」
RDeveloper

10

私は追加のツールなしでそれをやっています。Win32アプリプロジェクトに次のファイルを追加しました。

リソースファイルやプログラムコードで再利用できない定数を定義する1つのヘッダーファイル。1つのファイルを維持するだけで済みます。Qtプロジェクトでの実行方法を教えてくれたQtチームのおかげで、Win32アプリでも動作するようになりました。

---- [バージョン.h] ----

#ifndef VERSION_H
#define VERSION_H

#define VER_FILEVERSION             0,3,0,0
#define VER_FILEVERSION_STR         "0.3.0.0\0"

#define VER_PRODUCTVERSION          0,3,0,0
#define VER_PRODUCTVERSION_STR      "0.3.0.0\0"

#define VER_COMPANYNAME_STR         "IPanera"
#define VER_FILEDESCRIPTION_STR     "Localiza archivos duplicados"
#define VER_INTERNALNAME_STR        "MyProject"
#define VER_LEGALCOPYRIGHT_STR      "Copyright 2016 ipanera@gmail.com"
#define VER_LEGALTRADEMARKS1_STR    "All Rights Reserved"
#define VER_LEGALTRADEMARKS2_STR    VER_LEGALTRADEMARKS1_STR
#define VER_ORIGINALFILENAME_STR    "MyProject.exe"
#define VER_PRODUCTNAME_STR         "My project"

#define VER_COMPANYDOMAIN_STR       "www.myurl.com"

#endif // VERSION_H

---- [MyProjectVersion.rc] ----

#include <windows.h>
#include "version.h"

VS_VERSION_INFO VERSIONINFO
FILEVERSION     VER_FILEVERSION
PRODUCTVERSION  VER_PRODUCTVERSION
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904E4"
        BEGIN
            VALUE "CompanyName",        VER_COMPANYNAME_STR
            VALUE "FileDescription",    VER_FILEDESCRIPTION_STR
            VALUE "FileVersion",        VER_FILEVERSION_STR
            VALUE "InternalName",       VER_INTERNALNAME_STR
            VALUE "LegalCopyright",     VER_LEGALCOPYRIGHT_STR
            VALUE "LegalTrademarks1",   VER_LEGALTRADEMARKS1_STR
            VALUE "LegalTrademarks2",   VER_LEGALTRADEMARKS2_STR
            VALUE "OriginalFilename",   VER_ORIGINALFILENAME_STR
            VALUE "ProductName",        VER_PRODUCTNAME_STR
            VALUE "ProductVersion",     VER_PRODUCTVERSION_STR
        END
    END

    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1252
    END
END

2
ちょっと興味があるんだけど; ダイアログを変更したり、プロジェクトのリソースを変更したりするたびに、ウィンドウが.rcファイルを上書きしないようにするにはどうすればよいですか。これまでにこのような記事をいくつか見てきましたが、リソースを再度変更する必要がなく、IDEによる自動生成を引き起こす必要がなければ、うまくいくようです。
shawn1874 2017

@ shawn1874- 自動的に追加されるファイルに行#include <windows.h>を含めresource.hます。そのファイルは再生成されません(.rcファイルの上部に、生成されたコードであることを示し、デザイナーで変更できることに注意してください)。
CJBS 2018

1
質問に答えない@CJBS。それはうまくいくかもしれませんが、投稿された回答がどのように動くかも説明していません。投稿された回答では、user3016543は.rcファイルに直接version.hを含めています。私が知っている.rcファイルの上書きに対処する方法はいくつかあります。私はこの特定の答えが私には正しくないように見えるので、この特定の答えがどのように表示されるかについて質問しているだけです。
shawn1874

問題のコンポーネントにはダイアログコンポーネントがないため、ファイルが頻繁に、またはこれまでに再生成されないので、私は彼の方法がうまくいくと思います。ただし、そうではないMFCダイアログリソースを備えたWindowsアプリケーションでは。
shawn1874

1
WinBatch Extender SDKに同梱されているリソースファイルで最初に実際に見たテクニックを思い出してくれてありがとう。詳細がほとんどわからなくなってしまったので、必要になってから長い時間がかかりました。あなたの説明はそれをすべて取り戻しました。
David A.Gray


5

複数のツールがあり、多くのすばらしい回答で言及されています。1つ選択します。

リソースハッカー

[AngusJ]:Resource Hackerから最新バージョン(5.1.7)をダウンロードしました。必要な情報はすべてそのページにあります(コマンドラインオプション、スクリプトなど)。次のウォークスルーでは、(明らかな理由により)cwdにコピーした2つの実行可能ファイル(実験用ラット)を操作します。

  • ResourceHacker.exe:自分で操作するのは面白いと思いました
  • cmake.exeバージョン情報が設定されていないランダムな実行可能ファイル(私のマシンへのv3.6.3インストールの一部)

先に進む前に、ResourceHackerの端末出力がおかしいことに言及しておきます。次のコピー/貼り付けフラグメントは、少し混乱を招く可能性があります。

1.セットアップ

これは、環境に精通し、ファンキーなビジネスが行われていないことを示すための準備段階に似ています...

e:\Work\Dev\StackOverflow\q000284258> sopr.bat
*** Set shorter prompt to better fit when pasted in StackOverflow (or other) pages ***

[prompt]> dir
 Volume in drive E is Work
 Volume Serial Number is 3655-6FED

 Directory of e:\Work\Dev\StackOverflow\q000284258

2019-01-28  20:09    <DIR>          .
2019-01-28  20:09    <DIR>          ..
2016-11-03  09:17         5,413,376 cmake.exe
2019-01-03  02:06         5,479,424 ResourceHacker.exe
2019-01-28  20:30               496 ResourceHacker.ini
               3 File(s)     10,893,296 bytes
               2 Dir(s)  103,723,261,952 bytes free

[prompt]> set PATH=%PATH%;c:\Install\x64\CMake\CMake\3.6.3\bin

[prompt]> .\cmake --help >nul 2>&1

[prompt]> echo %errorlevel%
0

[prompt]> .\ResourceHacker.exe -help

[prompt]>

==================================
Resource Hacker Command Line Help:
==================================

-help             : displays these abbreviated help instructions.
-help commandline : displays help for single commandline instructions
-help script      : displays help for script file instructions.




[prompt]> echo %errorlevel%
0

ご覧のように、実行可能ファイルは問題なく実行されます。詳細詳細)は次のようになります。

Img0-初期

2.リソース

リソースファイルは、リソースを含むテキストファイルです。リソース(簡略化)には以下が含まれます。

  • 名前
  • タイプ

詳細については、[MS.Docs]:リソースファイルについてを確認してください。以下のようなリソースファイルの編集を容易にする多くのツール(既存の回答で言及)があります。

  • 新しいプロジェクトを開始すると、VStudioがデフォルトのVStudioを作成します
  • そのようなファイルを手動で作成できます
  • しかし、それはResource Hackerに関するものであり、そして:

    • 既存の実行可能ファイルからリソースを抽出できます
    • リソースが埋め込まれています(前の図を参照)。

    このステップで使用します(-action extract

次に、リソースを.exe.dll、...)に埋め込むには、PE形式に適合するバイナリ形式にコンパイルする必要があります。繰り返しになりますが、これを実現できるツールはたくさんありますが、おそらくご想像のとおり、私はResource Hacker()を使用します。-action compile

[prompt]> :: Extract the resources into a file
[prompt]> .\ResourceHacker.exe -open .\ResourceHacker.exe -save .\sample.rc -action extract -mask VersionInfo,, -log con

[prompt]>

[28 Jan 2019, 20:58:03]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHacker.exe  -open .\ResourceHacker.exe -save .\sample.rc -action extract -mask VersionInfo,, -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Save    : e:\Work\Dev\StackOverflow\q000284258\sample.rc


Success!

[prompt]> :: Modify the resource file and set our own values
[prompt]>
[prompt]> :: Compile the resource file
[prompt]> .\ResourceHacker.exe -open .\sample.rc -save .\sample.res -action compile -log con

[prompt]>

[28 Jan 2019, 20:59:51]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHacker.exe  -open .\sample.rc -save .\sample.res -action compile -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\sample.rc
Save    : e:\Work\Dev\StackOverflow\q000284258\sample.res

Compiling: e:\Work\Dev\StackOverflow\q000284258\sample.rc
Success!

[prompt]> dir /b
cmake.exe
ResourceHacker.exe
ResourceHacker.ini
sample.rc
sample.res

あなたの場合、リソースファイルは既に存在しているので、リソースファイルを保存して編集する必要はありません。説明の目的でそれを行いました。その下には、変更後(およびコンパイル前)のリソースファイルがあります。

sample.rc

1 VERSIONINFO
FILEVERSION 3,1,4,1592
PRODUCTVERSION 2,7,1,8
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
    BLOCK "040904E4"
    {
        VALUE "CompanyName", "Cristi Fati\0"
        VALUE "FileDescription", "20190128 - SO q000284258 demo\0"
        VALUE "FileVersion", "3.1.4.1592\0"
        VALUE "ProductName", "Colonel Panic\0"
        VALUE "InternalName", "100\0"
        VALUE "LegalCopyright", "(c) Cristi Fati 1999-2999\0"
        VALUE "OriginalFilename", "ResHack\0"
        VALUE "ProductVersion", "2.7.1.8\0"
    }
}

BLOCK "VarFileInfo"
{
    VALUE "Translation", 0x0409 0x04E4  
}
}

3.埋め込む

これは、Resource Hacker-action addoverwrite)によっても実行されます.exeは既にコピーされているので、リソースを編集します。

[prompt]> .\ResourceHacker.exe -open .\cmake.exe -save .\cmake.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

[prompt]>

[28 Jan 2019, 21:17:19]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHacker.exe  -open .\cmake.exe -save .\cmake.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\cmake.exe
Save    : e:\Work\Dev\StackOverflow\q000284258\cmake.exe
Resource: e:\Work\Dev\StackOverflow\q000284258\sample.res

  Added: VERSIONINFO,1,1033

Success!

[prompt]> copy ResourceHacker.exe ResourceHackerTemp.exe
        1 file(s) copied.

[prompt]> .\ResourceHackerTemp.exe -open .\ResourceHacker.exe -save .\ResourceHacker.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

[prompt]>

[28 Jan 2019, 21:19:29]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHackerTemp.exe  -open .\ResourceHacker.exe -save .\ResourceHacker.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Save    : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Resource: e:\Work\Dev\StackOverflow\q000284258\sample.res

  Modified: VERSIONINFO,1,1033

Success!

[prompt]> del /f /q ResourceHackerTemp.*

[prompt]> dir
 Volume in drive E is Work
 Volume Serial Number is 3655-6FED

 Directory of e:\Work\Dev\StackOverflow\q000284258

2019-01-28  21:20    <DIR>          .
2019-01-28  21:20    <DIR>          ..
2016-11-03  09:17         5,414,400 cmake.exe
2019-01-03  02:06         5,479,424 ResourceHacker.exe
2019-01-28  21:17               551 ResourceHacker.ini
2019-01-28  20:05             1,156 sample.rc
2019-01-28  20:59               792 sample.res
               5 File(s)     10,896,323 bytes
               2 Dir(s)  103,723,253,760 bytes free

ご覧のように、使用中に.exeを変更できない(少なくとも私はそうは思わない)ため、少しトリック(gainarie)をしなければなりませんでした。

4.テスト

これはオプションのフェーズであり、次のことを確認します。

  • 実行可能ファイルは引き続き機能します(プロセスでめちゃくちゃになりませんでした)
  • リソースが追加/更新されました
[prompt]> .\cmake --help >nul 2>&1

[prompt]> echo %errorlevel%
0

[prompt]> .\ResourceHacker.exe -help

[prompt]>

==================================
Resource Hacker Command Line Help:
==================================

-help             : displays these abbreviated help instructions.
-help commandline : displays help for single commandline instructions
-help script      : displays help for script file instructions.




[prompt]> echo %errorlevel%
0

そして彼らの詳細

Img1-Final


@ColonelPanic:ありがとう!
CristiFati

とてもいい答えです。残念ながら、ResourceHackerはもはやメンテナンスされておらず、大きなEXEファイルを編集しようとするとメモリが不足します(3GB exeを開こうとするとエラーが発生します)。
Lews Therin

@LewsTherin:最新バージョン(回答でも使用)は2019/01のものなので、かなりメンテナンスされていると思います。問題は、それが32ビットであることです。あなたはを求めて、著者に連絡することができ、64ビット(私は、彼らがすでにコードを持っているので、ためにそれを構築することは難しいことではないだろうと想定したバージョンは64ビット)。
CristiFati


3

パーティーには少し遅れましたが、探していたので(また、いつか見つける必要があるかもしれません)、VS2013 ExpressでC ++ DLLにバージョン、会社名などを含めるために、次のことを行いました。

  1. 前述のように、dllproj.rcファイルを作成および編集しました。
  2. DLLプロジェクトのビルド前のステップとして「rc.exe dllproj.rc」という行を追加しました。
  3. プロジェクトのリソースフォルダーにdllproj.resを追加しました。

お役に立てれば!


3

@DannyBeckettからの上記の回答は私を大いに助けました、

私は以下をバッチファイルに入れ、ResourceHacker.exeと私が作業しているEXEが配置されているのと同じフォルダに配置しました。[あなたのニーズに合わせて編集することができます]

    @echo off
    :start1
    set /p newVersion=Enter version number [?.?.?.?]:
    if "%newVersion%" == "" goto start1
    :start2
    set /p file=Enter EXE name [for 'program.exe' enter 'program']:
    if "%file%" == "" goto start2
    for /f "tokens=1-4 delims=." %%a in ('echo %newVersion%') do (set ResVersion=%%a,%%b,%%c,%%d)
    (
    echo:VS_VERSION_INFO VERSIONINFO
    echo:    FILEVERSION    %ResVersion%
    echo:    PRODUCTVERSION %ResVersion%
    echo:{
    echo:    BLOCK "StringFileInfo"
    echo:    {
    echo:        BLOCK "040904b0"
    echo:        {
    echo:            VALUE "CompanyName",        "MyCompany\0"
    echo:            VALUE "FileDescription",    "TestFile\0"
    echo:            VALUE "FileVersion",        "%newVersion%\0"
    echo:            VALUE "LegalCopyright",     "COPYRIGHT © 2019 MyCompany\0"
    echo:            VALUE "OriginalFilename",   "%file%.exe\0"
    echo:            VALUE "ProductName",        "Test\0"
    echo:            VALUE "ProductVersion",     "%newVersion%\0"
    echo:        }
    echo:    }
    echo:    BLOCK "VarFileInfo"
    echo:    {
    echo:        VALUE "Translation", 0x409, 1200
    echo:    }
    echo:}
    ) >Resources.rc     &&      echo setting Resources.rc
    ResourceHacker.exe -open resources.rc -save resources.res -action compile -log CONSOLE
    ResourceHacker -open "%file%.exe" -save "%file%Res.exe" -action addoverwrite -resource "resources.res"  -log CONSOLE
    ResourceHacker.exe -open "%file%Res.exe" -save "%file%Ico.exe" -action addskip -res "%file%.ico" -mask ICONGROUP,MAINICON, -log CONSOLE
    xCopy /y /f "%file%Ico.exe" "%file%.exe"
    echo.
    echo.
    echo your compiled file %file%.exe is ready
    pause

[補足として、リソースハッカーを使用して、GoRCではなくresファイルをコンパイルしました]


2

あなたは、実際にダウンロードしてみてくださいすることができますFVIEからダウンロードリンクをして任意の.exeファイルの情報を編集してみてください。

(または)

あなたはダウンロードすることができStampVerを- Win32のバージョンリソーススタンピングからダウンロードリンク のウィンドウが.exeファイルをするために便利です、本当に。

(または)

RCEDITと呼ばれるコマンドツールを使用できます。Githubソースリンクからダウンロードし、Visual Studio 2015を使用してビルドすると、.exeファイルのバージョンを変更する特定のコマンドがあります。利用可能なさまざまなコマンドについては、ドキュメントのリンクを参照してください。


1

これは私がこの仕事で見た中で最高のツールであり、VersionInfoを含め、すべてのファイルリソースを完全に制御できます。

参照:Anders MelanderによるResourceEditor


1
リソースエディター(0バイト)のダウンロードが壊れています。
ジャック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.