我正在嘗試使用 .net core 獲取文件版本。方法一string file = @"C:\somefile.dll";Console.WriteLine(AssemblyName.GetAssemblyName(file).Version.ToString());Method1 中的問題是,如果文件不是程序集,則會拋出 BadImageFormatException方法2string file = @"C:\hostpolicy.dll";FileVersionInfo fileversion = FileVersionInfo.GetVersionInfo(file);Console.WriteLine(fileversion.FileVersion);上面代碼的問題是它返回的結果與 Windows 文件資源管理器中顯示的結果不同。請參閱附圖。Windows資源管理器中顯示的文件版本是“2.2.27414.6”,但是我使用FileVersion屬性得到的版本是“2.2.27414.06 @BuiltBy:dlab14-DDVSOWINAGE021 @Branch:release/2.2 @SrcCode:https: //github.com/ dotnet/core-setup/tree/6b8ad509b6a48bcca07e8c413d6ffed8988547cc。提交哈希:6b8ad509b6a48bcca07e8c413d6ffed8988547cc”。
1 回答

慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
我做了一些研究。Windows 資源管理器和文件屬性對話框不會列出文件版本字符串,它們通過手動將文件版本部分放在一起來格式化文件版本信息。當我修改 AssemblyFileVersion 字段以包含一些虛假信息(例如[assembly: AssemblyFileVersion("1.0.0.0 @asdfasdf asdf asdf asdf")]
,Windows 資源管理器)時,文件屬性對話框僅列出了您上面指出的文件版本。但是當我調試并查看 FileVersion 字段時,發現了額外的虛假信息。
要回答您的問題,您似乎還需要通過手動將文件版本部分手動組合在一起來創建文件版本(即FileMajorPart.FileMinorPart.FileBuildPart.FilePrivatePart
)
- 1 回答
- 0 關注
- 100 瀏覽
添加回答
舉報
0/150
提交
取消