Error SIPEPS, Version=5.0.0.0 UCMA 4.0 VS2010/VS20

2019-04-25 09:13发布

问题:

I had developed an UCMA 4.0 application on both VS 2013 and VS 2010. When run project, I got this error:

Could not load file or assembly 'SIPEPS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

I used .NET 4 and had set target build platform to x64. Checked by dependwalker_x64 and no file is missing.

I also used the App.config file from Sample but not work so I had changed the App.config file as follow:

<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>

How should I do for this problem? Thanks so much for any help!

回答1:

The exception can be very bewildering because UCMA projects don’t require an explicit reference to this SIPEPS DLL, and often you’ll get the exception even if you locate the DLL and move it into the same directory as your application.

It turns out that it’s usually caused by one of two things:

  1. You’ve targeted the wrong version of the .NET Framework.
  2. You’ve targeted the wrong type of CPU.

Open up the properties for your project in Visual Studio and make sure .NET Framework 4.5 is selected.

If you’re not running Visual Studio 2012, you have a somewhat larger problem,

because you can’t use .NET 4.5 with Visual Studio 2010 and earlier. If you had an earlier version of the framework selected, change it, rebuild the project, and try again. UCMA 4.0 lists .NET 4.5 as a requirement.

If you’re still getting the exception,

check the target platform and make sure it is Any CPU or x64 for all projects.

UCMA has only worked on 64-bit machines since the 3.0 version, and what sometimes happens is that a project will get inadvertently set to x86, and will therefore try to load a 32-bit version of SIPEPS.dll on startup. Well, there isn’t a 32-bit version of SIPEPS.dll; hence the somewhat misleading exception.

Reference



回答2:

EDIT: If you try to install UCMA applitaion on a non-lync server , you must install RuntimeApi, if you try to run UCMA on a lync/skype server , you don't need to install RuntimeApi, you should try the above answer , which is to reCompile to 32/62/auto...

if recompile doesn't make your day any better ,maybe, you are missing
UCMA API Runtime

Install / ReInstall
Unified Communications Managed API 4.0 Runtime for SIPEPS Version=5.0.0.0
Unified Communications Managed API 5.0 Runtime for SIPEPS Version=6.0.0.0

(dancing with the right partner - ucma sdk 4.0/5.0 Microsoft.Rtc.Collaboration.dll)

runtime install requirements :

PS > Install-WindowsFeature server-media-foundation

on the target/host machine you want to run it on (which is probably unrelated to any Lync/SKF territory) OR on the development machine with a recompile to fit the downgrade/upgrade



回答3:

You may also get this error message if your application server is not properly configured for UCMA applications.

In particular this message appears if replication is failing. To review the state of replication run get-csManagementStoreReplicationStatus and ensure that the "UpToDate" field is true for your application server.



回答4:

In addition to the great answer of tharif. Notice that you must change platform to x64 in debug mode and in release mode as well. Platforms can be different in different modes. I had such issue in VS2015 with UCMA4, .net4.5. In debug mode my application works great, but after release build it fails with exception 'Could not load file or assembly SIPEPS'.