7

我在 VS 2013 和 VS 2010 上都开发了一个 UCMA 4.0 应用程序。运行项目时,出现此错误:

无法加载文件或程序集“SIPEPS,版本=5.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。

我使用.NET4 并将目标构建平台设置为x64. 由dependwalker_x64检查,没有文件丢失。

我还使用了 Sample 中的 App.config 文件,但无法正常工作,因此我将 App.config 文件更改如下:

<runtime>
<assemblyBinding>
  <dependentAssembly>
    <assemblyIdentity name="SIPEPS" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>

这个问题我该怎么办?非常感谢您的帮助!

4

4 回答 4

19

该异常可能非常令人困惑,因为 UCMA 项目不需要显式引用此SIPEPS DLL,即使您找到该 DLL 并将其移动到与您的应用程序相同的目录中,您也会经常遇到异常。

事实证明,它通常是由以下两种情况之一引起的:

  1. 您定位到了错误的 .NET Framework 版本。
  2. 您选择了错误类型的 CPU。

在 Visual Studio 中打开项目的属性并确保选择 .NET Framework 4.5。

如果你没有运行 Visual Studio 2012,你有一个更大的问题,

因为您不能将 .NET 4.5 与 Visual Studio 2010 及更早版本一起使用。如果您选择了较早版本的框架,请更改它,重新构建项目,然后重试。UCMA 4.0 将 .NET 4.5 列为要求。

如果您仍然遇到异常,

检查目标平台并确保它是所有项目的任何 CPUx64

自 3.0 版本以来, UCMA仅在 64 位机器上工作,有时会发生项目会无意中设置为 x86,因此会在启动时尝试加载 32 位版本的 SIPEPS.dll。好吧,没有 32 位版本的 SIPEPS.dll;因此有点误导的例外。

参考

于 2015-07-27T12:43:23.040 回答
3

编辑:如果您尝试在非 lync 服务器上安装 UCMA applitaion,则必须安装 RuntimeApi,如果您尝试在 lync/skype 服务器上运行 UCMA,则无需安装 RuntimeApi,您应该尝试上述答案,也就是重新编译成32/62/auto...

如果重新编译没有让您的一天变得更好,也许您缺少
UCMA API 运行时

安装/重新安装 SIPEPS 版本 = 5.0.0.0 的 统一通信托管 API 4.0 运行时
版本= 6.0.0.0 的统一通信托管 API 5.0 运行时

(与合适的伙伴共舞 - ucma sdk 4.0/5.0 Microsoft.Rtc.Collaboration.dll)

运行时安装要求:

PS > 安装-WindowsFeature server-media-foundation

在您要运行它的目标/主机上(可能与任何 Lync/SKF 领域无关)或在开发机器上重新编译以适应降级/升级

于 2016-02-15T14:49:33.460 回答
2

如果您的应用程序服务器没有为 UCMA 应用程序正确配置,您也可能会收到此错误消息。

特别是,如果复制失败,则会出现此消息。查看复制运行的状态get-csManagementStoreReplicationStatus并确保您的应用程序服务器的“UpToDate”字段为真。

于 2015-07-28T09:52:37.353 回答
1

除了 tharif 的出色回答。请注意,您必须在调试模式和发布模式下将平台更改为 x64。平台可以在不同的模式下有所不同。我在 VS2015 中使用 UCMA4、.net4.5 遇到了这样的问题。在调试模式下,我的应用程序运行良好,但在发布构建后它失败并出现异常“无法加载文件或程序集 SIPEPS”。

于 2017-08-10T01:57:15.357 回答