问题标签 [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.

0 投票
1 回答
915 浏览

c# - AssemblyInformationalVersion 属性行为更改:故意还是错误?

在使用 VS2013 构建的 C# 项目中,我可以将其放入 AssemblyInfo.cs 文件中:

当我对另一个项目中的可执行文件使用 FileVersionInfo.GetVersionInfo .NET API 时,我发现报告了以下值:

  • 产品版本:7.1.0.0 Private(调试版本)
  • 产品主要部分:7
  • 产品次要部分:1

当我在使用 VS2015 构建的 C# 项目中使用相同的属性和字符串值时,ProductMajorPart 和 ProductMinorPart 属性报告为零!

有谁知道行为改变是否是故意的?

我检查了在可执行文件中找到的二进制文件版本信息,虽然版本信息中的字符串值在两个文件中都符合预期,但 VS2015 可执行文件在 VS_FIXEDFILEINFO.dwProductVersionMS 和 VS_FIXEDFILEINFO.dwProductVersionLS 字段中的值为零。

0 投票
0 回答
502 浏览

c# - FileVersionInfo 在 exe 更改时返回错误的版本

我有一种情况,一个用户可能安装了应用程序更新,而该应用程序正在为另一个登录用户运行。

当其他用户重新连接到他们的会话时,调用 toFileVersionInfo.GetVersionInfo(file)用于检查是否发生了更新并旨在重新启动应用程序。

但是,尽管文件资源管理器中的文件显示了新版本号(文件和产品版本使用相同的版本),但调用GetVersionInfo()返回的是当前执行版本,而不是磁盘上的版本。

我只设置[assembly: AssemblyVersion("A.B.C.D")]版本属性,而其他未定义,以便它们默认为该AssemblyVersion值。

但是,文件资源管理器中的文件版本(和产品版本)详细信息product.exe表明2.0.0.0.

我认为执行程序集必须引用某种虚拟化文件或路径,VirtualStore因为文件系统已更改。

如何可靠地获取目录中显示的实际文件product.exe版本C:\Program Files (x86)\Company\Product


要重现这一点,请使用以下Console应用程序:

构建应用程序的两个版本。第一个应该具有程序集版本属性,没有其他版本属性,设置AssemblyInfo.cs为:

第二个应该将版本设置为

执行版本1.0.0.0 app.exe,然后在检索到第一个文件版本后,将执行重命名app.exeapp.exe.bak并将版本复制2.0.0.0 app.exe到同一文件夹中。

当我这样做时,这是我的控制台输出:

如果您app.exe立即再次运行,作为版本2.0.0.0应用程序,控制台输出将显示:

0 投票
1 回答
1093 浏览

c++ - 无法读取代码页不匹配的 FileVersionInfo

我有一些经过合理尝试和测试的代码,它们使用 Windows API 调用来读取 FileVersionInfo 字符串,例如“FileVersion”和“CompanyName”。

我发现它因一个特定的第 3 方 DLL 而失败。问题似乎是这样的:

读取\VarFileInfo\Translation值,我得到040904B0(美国英语,Unicode)。但是当我尝试调用VerQueryValueon 时\StringFileInfo\040904B0\CompanyName,它返回 false。

但是调整代码以使用 Windows Latin-1 ANSI 代码页有效:\StringFileInfo\040904E4\CompanyName.

因此,字符串表中的代码页与该值不匹配\VarFileInfo\Translation

根据 MSDN 的VERSIONINFO 资源文档底部的示例资源,这是一个合适的做法!

鉴于此,我可以使用已发布的 VersionInfo API 来正确读取此文件的字符串,而无需“猜测”代码页吗?

0 投票
1 回答
1661 浏览

powershell - Power shell 脚本 - 我们可以在构建时设置 dll 产品版本吗?

我是 Powershell 的新手。我正在使用 power shell 脚本来构建 VB6 dll。

我们可以在构建的时候自己设置它的产品版本吗?假设将产品版本设置为“Mysoftware 5.1 Beta 6”。提前致谢。

0 投票
1 回答
238 浏览

lazarus - Windows 是否支持可执行文件的文件版本信息中的其他自定义字段?

我正在 Lazarus 中编写一些代码,我想添加其他信息,例如 FPC 版本、Lazarus 版本、Git Commit 等。

是否可以在项目中添加这样的字段?

https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx上的信息将这些字段作为标准字段。

还有示例代码,例如

是否可以添加您自己的附加字段,如上所述,当用户单击 Windows 资源管理器中的文件或由程序中的 FileVersionInfo 函数检索时将显示这些字段。

0 投票
0 回答
314 浏览

c++ - 什么是驱动程序中的 GetFileVersionInfo 的等价物?

我想在 Windows 中编写驱动程序,但无法使用GetFileVersionInfo.

如何在内核模式下获取文件的VersionInfo , GetFileVersionInfo的等价物是什么?

0 投票
2 回答
1144 浏览

vb.net - 比较 FileVersionInfo 以检查旧版本

我为 Autodesk Inventor 创建了一个插件。现在它已完成并安装在每个用户工作站上。每当我有插件的更新时,用户需要运行安装程序来获取最新的更新,这个过程我想自动化用户在工作时总是拥有最新版本。因此,检查将在 Autodesk Inventor 加载期间进行。

我会检查FileVersionInfo

我可以使用MSDN网站上提供的示例代码来执行此操作

这将导致以下输出:

但是将这个版本号相互比较的正确方法是什么?

0 投票
3 回答
821 浏览

c# - FileVersionInfo C# 中的 LegalCopyRight 始终为空?

我在 Windows 中有一个 SFX(自解压可执行文件)文件(使用7z, WinRar, .... 等 zip 工具创建),其中包含以下详细信息:

文件详情

我想CopyRight在 C# 中获取文本,所以我编写了以下代码:

fileVersionInfo.LegalCopyright总是空的!有什么问题?

编辑:
我的原始代码:

结果:

文件详情

0 投票
4 回答
3055 浏览

c# - 如何获取文件的最后修改日期?

我有一个错误。为什么我不知道我想要这个文件的最后修改日期。但是我有问题 在此处输入图像描述

在我的代码中:日期总是 01011601 为什么?你有什么建议吗?

在此处输入图像描述

文件属性: 在此处输入图像描述

0 投票
1 回答
1040 浏览

javascript - 以 HTML 格式获取下载文件的版本信息

我们的网站包含一个链接,客户可以在其中下载最新的 update.exe 文件。我们想让网页自动显示每个补丁文件的文件版本信息。这些文件是经过数字签名的本机 Windows 可执行文件。

有没有一种方法可以使用 HTML5 或 javascript 从文件中获取和显示版本信息,而无需用户单击按钮?本质上,我们希望在页面加载或刷新时更新文件版本。这就是我们现在所拥有的。我想在每行显示“产品”之后添加“版本 1.2.3.4”。