visual-studio - Visual Studio 和 .DLL 版本号

我想弄清楚我在我的 Win XP Pro 笔记本电脑上安装了哪个 SAPI 版本。

我正在将 sapi.dll 添加到我的项目中: 项目 > 添加引用 > COM: Microsoft 语音对象库 5.0 C:\Program Files\Common Files\Microsoft Shared\Speech\sapi.dll

如果我打开 Windows 资源管理器并导航到 C:\Program Files\Common Files\Microsoft Shared\Speech\sapi.dll,它显示版本号为 5.1.4111.0

由 Visual Studio 创建的互操作文件 (Interop.SpeechLib.dll) 显示版本号为 5.0.0.0

如果我转到“项目”>“添加引用”>“浏览”并手动浏览 dll,则没有任何区别。虽然物理 dll 显示版本 5.1.4111.0,但 Visual Studio 中的所有内容都变成版本 5.0.0.0

为什么会出现差异?

谢谢。

最佳答案

因为类型库版本与文件版本没有任何关系。库版本描述了 API 的声明接口(interface)。当做出需要重新编译程序的重大更改时,库版本会增加。

文件版本是一个实现的细节。在 XP 上可能有多个版本,比如不同的服务包或安全补丁。此处的“5.1”表示 Windows 版本号。 4.0 = Windows NT,5.0 = Windows 2000,5.1 = XP,6.0 = Vista,6.1 = Windows 7。文件版本的更改不需要重新编译您的程序。您只关心库版本。

https://stackoverflow.com/questions/8904268/

相关文章:

ruby-on-rails - 我应该使用 faker 还是更快的 faker

ruby-on-rails - Rails 3 嵌套路由参数名称不同

wpf - 语音识别 - 未处理的异常 - 未找到 SAPI,即使已安装

php - 从 php 在计算机上运行脚本

haskell - GHCi - 第二次运行时跳过断点

r - ggplot 中的条形图,每组条数不同

wcf - 检查权限的最佳位置在哪里?

linq - Entity Framework 、每种类型的表和 Linq - 获取 "Type"

oop - 得墨忒耳法则和 HashMap

visual-studio - 如何在 visual studio 调试控制台中生成 EOF(或 A