問題タブ [fileversioninfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Program Files ディレクトリの FileVersionInfo を更新しています
外部プログラムによって新しいバージョンに更新されるのを監視する FileSystemWatcher を備えたプログラムがあります (現在の実行可能ファイルの名前を変更し、その場所に新しい実行可能ファイルをコピーする必要があります)。
問題は、監視しているファイルが Program Files ディレクトリにある場合、FileVersionInfo.GetVersionInfo() が新しいバージョン情報を取得せず、最初に取得したものと同じものを返すことです。したがって、1.1 から 1.2 に更新した場合、「1.1 から 1.2 にアップグレード」ではなく「1.1 から 1.1 にアップグレード」と表示されます。デバッグ ディレクトリでは正しく動作しますが、Program Files では正しい値が得られません。
例外処理、破棄、ロギング、スレッド呼び出しなどをすべて除いた、それが行っていることの本質は次のとおりです。
GetVersionInfo() を更新して新しいバージョンを表示するにはどうすればよいですか? 代わりに呼び出す必要があるものは他にありますか?
windbg - WinDBG がダンプに不一致の FileVersion を表示するのはなぜですか?
TL;DR
WinDBGlmv
が 2 つのバージョン情報フィールドを表示するのはなぜですか (私が知っている他のツールではこれを実行できないのに)、どのような状況でこれらのフィールドが異なる可能性がありますか?
背景: アプリケーションの (デッドロックからの) ライブ ダンプがあります。pdm.dll
シンボルは正しく読み込まれ、デッドロックをマイクロソフト(vbscript エンジンに使用される「プロセス デバッグ マネージャー」)までさかのぼることができました。
次に、この DLL のどのバージョンが本番サイトのセッションでロードされたかを確認したいと思いました。
ご覧のとおり、ファイルと製品のバージョンが 2 回表示されていますが、ダンプでは一致していません。
実行中の iexplore プロセスの同じファイルをマシンでクロスチェックすると (明らかに、タイムスタンプとチェックサムが表示されます!)、次のようになります。
バージョン情報が一致します。
c# - コンパイル済みのアセンブリで AssemblyInformationalVersion を変更できますか?
FileVersionInfo の ProductBuildPartにsvn リビジョンを使用します。リビジョン 65536 を超えているため、番号を変更する必要がありました。これを補うために、 AssemblyInformationalVersionAttributeに実数を貼り付けます。ソースからアセンブリをビルドする場合、これは非常に簡単です。
ただし、パフォーマンスのために SGen によって生成されたアセンブリがあります。既にビルドされたアセンブリで AssemblyInformationalVersionAttribute を変更/追加する簡単な方法はありますか?
powershell - PowerShellを使用して同じ名前のフォルダーとファイルを見つける
名前がわからない特定の DLL ファイルのファイル バージョンを抽出する必要があります。私が知っているのは、ファイルバージョンを保持するファイルがどこにあるか、その名前がその下に隠れているフォルダーと同じであることだけです。
実際には、次のようなものです。
C:\inetpub\wwwroot\APPFolder\bin\files
(サブフォルダーの名前は bin フォルダー内のファイルの名前と一致します)
何度も試行 (そして多くの失敗) した後、私は少し行ったり来たりしましたが、今ではこのコードのビットに快適に傾いています....閉じますが、葉巻はありません:
このコードは、すべてのファイルを再帰的に検索し\temp\documents
、フォルダー内のファイルを照合します。これは素晴らしいことですが、私が望んでいたものとはまったく異なります。また、上記のコードは、一致したファイルだけでなく、フォルダーに一致するファイルがあるフォルダーを提供します。
それで...何か提案はありますか?上記の bin フォルダーには複数の DLL ファイルがあります。これが、APPFolder と同じ名前のファイルを選択する必要がある理由の一部です。
c++ - VerQueryValueに相当するMacOS X?
現在、プロジェクトを MacOS に移植しています。Windows バージョンでは 、winapi の一部であるVerQueryLang(...)を使用して、ウィンドウ タイトルのファイル バージョン情報を特定しています。
MacOSに同等の機能はありますか?
c# - ハンドヘルド デバイス (CF/CE) で .exe のファイル バージョン情報を取得するにはどうすればよいですか?
私のサーバー アプリでは、次の方法でファイル バージョン情報を取得できます。
...しかし、そのトリックは Compact Framework では機能しないようです (「型または名前空間名 'FileVersionInfo' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)」
サーバー/Web API (.NET 4.5.1) アプリで必要な「使用」は System.Diagnostics のようですが、それを CF アプリに追加すると、using ステートメントがグレー表示されたままになります (そして、上記のエラーメッセージ)。
これを機能させるには、特定の「使用」と組み合わせて、特定のアセンブリ参照を追加する必要がありますか?
または、ここにあるようなカスタム CF コードを使用する必要がありますか?
アップデート
上記のリンク先の記事では、「コンパクト フレームワークでファイル バージョン情報を取得するのは非常に簡単です。情報が必要なファイルがマネージ アセンブリであれば」と書かれています。
それで、わかりました:簡単な方法は何ですか?燃えるようなフープを飛び越える前に、まずそれを試してみます。そして、この質問は多くの人にとって素朴に思えるかもしれませんが、私たちが作成したカスタム .exe (「社内」アプリ) は「ネイティブ」または「マネージド」ですか? 2つの違いをグーグルで調べてみましたが、定義が見つかりませんでした...
powershell - フォルダ内のファイル バージョンをハッシュ テーブルと比較する PowerShell スクリプトを作成する
コンピューター上のフォルダー (C:\Windows\System32 など) を見て、フォルダー内のファイルを見て、定義済みのハッシュ テーブル。
このハッシュ テーブルには、「system32」フォルダにある同一のファイルに関する情報が含まれており、バージョンが間違っているファイルを特定します。ハッシュ テーブルは、ファイルとそのバージョンで構成されます。
例:
advapi32.dll 6.1.7600.16385
comctl32.dll 6.1.7600.16385
comdlg32.dll 6.1.7600.16385
gdi32.dll 6.1.7600.16385
間違ったバージョンのファイルが見つかった後、出力には問題のファイルが表形式で一覧表示されます。
[System.Diagnostics.FileVersionInfo] を使用して、ファイルのバージョン情報を取得する方法を見つける必要があることはわかっています。.productVersion
比較のためにプロパティを使用する必要があることはわかっています。
どうやって始めたらいいのかわからない。さらに必要な情報がある場合は、お知らせください。
c++builder - Windowsシステムのすべてのエディションでexeファイルのバージョンを読み取り可能にする方法
C++ ビルダー xe2 で記述された 32 ビット プログラムがあり、動的にリンクされた bpl ファイルがあります。私のプログラム更新システムは、exe ファイルのバージョンに基づいています。しかし、一部のクライアントでは、プログラムが 2.3.0.94 ではなく 1.0.0.0 ファイル バージョンを参照するため、Windows 2008 サーバー 32 ビット アップデート システムが失敗しました。このウィンドウでファイルのプロパティを確認すると、1.0.0.0 も表示されます。
そのバージョンがWindowsシステムのすべてのエディションで読み取り可能であることを確認するためにexeファイルをコンパイルする方法は?