【问题标题】:Allowing installation of Microsoft.Speech dll even when prerequisite is not available即使先决条件不可用,也允许安装 Microsoft.Speech dll
【发布时间】:2013-09-04 21:28:24
【问题描述】:

我有一个应用程序可以选择从 Microsoft 服务器语音平台提取 TTS 语音。如果尚未安装平台(通过 ClickOnce),应用程序应正常继续。但是,就目前而言,如果缺少它,整个应用程序将无法安装。这似乎是在调用任何内容之前自动从 dll 中获得的。救命!

可在此处找到带有 Microsoft.Speech.dll 的 SDK:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4

错误是“需要系统更新:无法安装或运行应用程序要求首先在全局程序集缓存 (GAC) 中安装程序集 Microsoft.Speech 版本 10.1.0.0”。同样,目标是允许应用程序安装即使 Microsoft.Speech 尚未安装。

在先决条件的 ClickOnce 选项中,这不存在,它似乎来自 dll。

【问题讨论】:

    标签: c# wpf gac


    【解决方案1】:

    我相信这会起作用,但无法测试:

    在发布 -> 应用程序文件中,将 Microsoft.Speech.dll 的发布状态设置为“排除”或“包含”

    密钥在 ClickOnce Manifest 中,它没有隐藏在 dll 中。

    让我知道这是否有效

    【讨论】:

    • 感谢您的回复。我正在寻找,我想我想包括 Microsoft.Speech.dll。问题是 .dll 调用了必须在 GAC 中安装的其他东西,因为我认为安装 Microsoft.Speech 运行时实际上可能不会提供 dll,但我会检查它。
    • 其实我刚查过。你在这方面的钱是对的。
    • 现在我想知道我是否可以为此使用隔离,而不是要求用户安装到 GAC。
    • 'Include' 也应该可以。您遇到的错误是在 clickOnce 安装期间,对吗?我刚刚测试了使用排除和包含选项在没有语音的机器上部署它,并且两种方式都成功安装
    • 我原本以为您出于某种原因打算单独安装它,这就是我说使用“排除”的原因。 “包含”应该可以工作...
    【解决方案2】:

    你需要这样做,这对我有用。

    从以下位置导入 Microsoft.Speech.dll:

    C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\Microsoft.Speech.dll
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多