是否可以将文件版本附加到 .bak 文件?
Is it possible to attach a file version to a .bak file?
对于 .exe 和 .dll 文件,我可以创建一个可以在属性中看到的文件版本。我可以对 SQL 备份文件 (.bak) 执行相同的操作吗?
简答:
没有
长答案:
是的,但这并不容易。
Windows *.exe
和 *.dll
文件的
Windows 资源管理器的文件属性的 "Details" 窗格是从文件中嵌入的 VERSION
and VERSIONINFO
Win32 resources 填充的,它不是外部元数据。
Explorer 确实允许 shell 扩展为其他文件类型提供 "Details" 窗格内容。这就是 Explorer 显示照片、视频和音乐元数据的方式。 SQL 服务器备份文件没有内置 shell 扩展名,但您可以创建自己的扩展名。
The API is called IPropertySetStorage
并且它关注允许 Windows shell(文件资源管理器、通用对话框等)读取和可选地写入文件元数据(这可以是内部或外部元数据).
Windows shell 扩展可以技术上 使用 C# 和 .NET 编写,however it is not supported and you will likely run into problems - so you'll need to write it in C++ or Rust(我想你可以 尝试 也在 VB6 中构建它——除非这在 x64 计算机上不起作用,因为没有用于 x64 的 VB6 编译器。
对于 .exe 和 .dll 文件,我可以创建一个可以在属性中看到的文件版本。我可以对 SQL 备份文件 (.bak) 执行相同的操作吗?
简答:
没有
长答案:
是的,但这并不容易。
Windows *.exe
和 *.dll
文件的
Windows 资源管理器的文件属性的 "Details" 窗格是从文件中嵌入的 VERSION
and VERSIONINFO
Win32 resources 填充的,它不是外部元数据。
Explorer 确实允许 shell 扩展为其他文件类型提供 "Details" 窗格内容。这就是 Explorer 显示照片、视频和音乐元数据的方式。 SQL 服务器备份文件没有内置 shell 扩展名,但您可以创建自己的扩展名。
The API is called IPropertySetStorage
并且它关注允许 Windows shell(文件资源管理器、通用对话框等)读取和可选地写入文件元数据(这可以是内部或外部元数据).
Windows shell 扩展可以技术上 使用 C# 和 .NET 编写,however it is not supported and you will likely run into problems - so you'll need to write it in C++ or Rust(我想你可以 尝试 也在 VB6 中构建它——除非这在 x64 计算机上不起作用,因为没有用于 x64 的 VB6 编译器。