cancel
Showing results for 
Search instead for 
Did you mean: 

Could not load file or assembly 'BusinessObjects.Enterprise.Sdk' with 64 bit SDK

Former Member
0 Kudos

I am running across an error that I do not fully understand when trying to get the SDK to work for 4.1 SP04. I have been trying to get this solution for a while now. I am able to run the SDK functionality with the 32 bit version without an issues however, my client would like to run the 64 bit version to align with their architecture. I have added the x64 DLLs to my project in VS2013, and compiled and built the project as a 64 bit project. I am receiving the following error message:

Could not load file or assembly 'BusinessObjects.Enterprise.Sdk' or one of its dependencies. An attempt was made to load a program with an incorrect format.


When building the project to build on "Any CPU" instead of x64 or x86, I am seeing the following messages:



Warning    1    There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "BusinessObjects.Enterprise.Sdk, Version=14.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=AMD64", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.    DemoWeb2


Warning    2    There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "CrystalDecisions.Enterprise.Framework, Version=14.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=x86", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.    DemoWeb2


Warning    3    There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "CrystalDecisions.Enterprise.InfoStore, Version=14.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=x86", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.    DemoWeb2


Warning    4    There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "CrystalDecisions.Enterprise.PluginManager, Version=14.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=x86", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.    DemoWeb2

I have made sure that I am referencing the 64 bit sdk .dlls from C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\. I only have 64 bit installed as well. Are InfoStore, Framework, and PluginManager only x86?

Thanks!

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member183750
Active Contributor
0 Kudos

Hi Dustin

You do  not need to be concerned if your app references 32 or 64 bit assemblies. VS being 32 bit, needs to reference 32 bit assemblies in order to compile correctly. Thus running the app from the VS IDE, you wil be using 32 bit assemblies. Using a compiled exe or a DLL, the app will use 32 bit or 64 bit assemblies depending on how the app was compiled and "bitness" of the OS.

E.g;; an app compiled as 32 bit will require 32 bit assemblies

An app compiled as 64 bit will run 64 bit assemblies - on 64 bit OS only.

An app compiled as "Any CPU", will run 32 b it or 64 bit assemblies, depending on the OS. On a 64 bit OS, the app will by definition use 64 bit assemblies (but it is up to you to deploy the 64 bit runtime - not the 32 bit runtime). On a 32 bit OS the app will use 32 bit assemblies.

- Ludek

Senior Support Engineer AGS Product Support, Global Support Center Canada

Follow us on Twitter

Former Member
0 Kudos

Hi Ludek. Thanks for your reply!

I think I understand what you mean but I would like to make sure. Visual Studios is a 32 bit application and when I am running the sdk locally, it compiles and works correctly with the 32 bit SDK. In effect, it creates a 32 bit server for it to run on. If I try compiling it as 64 bit, it will not work because the IIS Server VS2013 creates by default when I run the project is 32 bit. I thought that it would model my machine as I am running Windows 7 64 bit.


If I run this application on a 64 bit Web Server, it should work without a problem. If it is compile as "Any CPU", how does it know which run time to choose? And if I compile it as any CPU, would I have to install both versions of the sdk? Would I have to reference both versions in my project too?


My client is adamant on having 64 bit installed as they want everything on their server to 64 bit, yet I have not been able to get the 64 bit to work on my local machine. Is there any danger in installing both runtimes or should it be avoided?

former_member183750
Active Contributor
0 Kudos

Hi Dustin

Re:

If I run this application on a 64 bit Web Server, it should work without a problem. If it is compile as "Any CPU", how does it know which run time to choose?


Not really sure. This is a question better posed to MS(?). E.g.; how does a 64 bit OS know to run any app compiled as "Any CPU" in 64 bit more. Sorry, sounds flip, but it's not neat to be.


If you install as "Any CPU", all you need to do is deploy the 64 bit runtime on a 64 bit OS, 32 bit on a 32 bit OS. You do not want to reference both. Just worry about this working on your dev computer from the VS IDE. Then compile and deploy the correct runtime.




See if compiling as pure 64 bit will work. Again, do not be concerned with referencing anything but 32 bit assemblies. The compiler takes care of the rest for you.

- Ludek






Former Member
0 Kudos

I am running an application written in C# in VS 2013.  I am trying to reference the DLL's CrystalDecisions.Enterprise.Framework and CrystalDecisions.Enterprise.InfoStore. They are 64 bit DLL's, the file version is 12.0.0.0.  My machine is running Windows 7, 64 bit.  When I reference these DLL's in my application and run it in VS IDE, I get the following error:

Could not load file or assembly 'BusinessObjects.Enterprise.Sdk' or one of its dependencies. An attempt was made to load a program with an incorrect format.


Does anyone have any tips as to how to correctly reference these DLL's in a .NET application?

I am trying to run code that looks as follows to get a serialized session:

            SessionMgr session_mgr = new SessionMgr();

            EnterpriseSession session = session_mgr.Logon(userName, password, server, auth);

            string session_str = session.SerializedSession;

            string SessionURL = HttpUtility.UrlEncode(session_str);

DellSC
Active Contributor
0 Kudos

Which of the .NET SDK assemblies does your application reference?  Also, which .NET framework are you targeting?  You cannot use one of the "client" frameworks as they won't work with the SDK.

-Dell

Former Member
0 Kudos

Hi,

The .NET SDK assemblies I am trying to reference are CrystalDecisions.Enterprise.Framework.dll and CrystalDecision.Enterprise.Infostore.dll.  Our .NET framework is 4.5.   When you say "Client Framework", I am not quite sure what you mean.  Are you referring to the .NET framework or the SDK framework?

Former Member
0 Kudos

Were you able to solve this? What changes you have to make in your application to run it successfully. I am using VS2010 and VS2015 on both .NET frameworks 3.5 and 4.0 without any luck. I am getting the same error.

Any help is greatly appreciated.

Thanks,

Sher

former_member207665
Active Participant
0 Kudos

Hi Sher,

Please create a new discussion with your issue details in it or else you can also have a search in the forum space.

Regards,

Vinit