我在VS 2013和VS 2010上都开发了UCMA 4.0应用程序。运行项目时,我收到了这个错误:
无法加载文件或程序集'SIPEPS,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。系统找不到指定的文件。
我使用.NET
4并将目标构建平台设置为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>
我该怎么做才能解决这个问题?非常感谢您的帮助!
答案 0 :(得分:18)
异常可能非常令人困惑,因为UCMA项目不需要明确引用此 SIPEPS DLL ,并且即使您找到DLL并将其移动到与应用程序相同的目录。
事实证明,这通常是由两件事之一引起的:
在Visual Studio中打开项目的属性,并确保选中.NET Framework 4.5。
如果您没有运行Visual Studio 2012,则需要更大一些 问题,
因为您无法在Visual Studio 2010及更早版本中使用.NET 4.5。 如果您选择了早期版本的框架,请更改它,重建项目,然后重试。 UCMA 4.0将.NET 4.5列为要求。
如果你仍然得到例外,
自3.0版以来,检查目标平台并确保所有人都任何CPU 或 x64 项目
UCMA 仅在64位计算机上运行,有时会发生项目无意中设置为x86,因此会尝试加载32位版本SIPEPS.dll在启动时。好吧,没有32位版本的SIPEPS.dll;因此有点误导性的例外。
<强> Reference 强>
答案 1 :(得分:3)
编辑: 如果您尝试在非lync服务器上安装UCMA applitaion,您必须安装RuntimeApi,如果您尝试在lync / skype服务器上运行UCMA,您不需要安装RuntimeApi,您应该尝试以上答案,这是重新编译为32/62 / auto ...
如果重新编译没有让你的一天变得更好,也许,你可能会失踪了 - UCMA API Runtime
安装/重新安装
对于SIPEPS版本= 5.0.0.0,Unified Communications Managed API 4.0 Runtime Unified Communications Managed API 5.0 Runtime对于SIPEPS版本= 6.0.0.0 <{3}}
(与合适的合作伙伴共舞 - ucma sdk 4.0 / 5.0 Microsoft.Rtc.Collaboration.dll)
运行时安装要求:
PS&gt;安装-WindowsFeature服务器媒体基础
目标/主机计算机上要运行它(可能与任何Lync / SKF区域无关)或开发计算机上重新编译到适合降级/升级
答案 2 :(得分:2)
如果没有为UCMA应用程序正确配置应用程序服务器,也可能会收到此错误消息。
特别是如果复制失败,则会显示此消息。要查看复制状态,请运行get-csManagementStoreReplicationStatus
并确保应用程序服务器的“UpToDate”字段为true。
答案 3 :(得分:1)
除了tharif的好答案。请注意,您必须在调试模式和发布模式下将平台更改为x64。平台在不同模式下可以有所不同。我在VS2015中遇到过UCMA4,.net4.5这样的问题。在调试模式下,我的应用程序工作得很好,但在发布后,它会失败,但“无法加载文件或程序集SIPEPS”会出现异常。