I have created a simple application of reading mail properties from a nsf file using Interop.Domino.dll, things works fine for 32 bit OS but when i attempt to run the same application under 64 bit OS i am unable to create LotusNotes Session , getting the COM Exception. Though i can run the same application on 64 bit by changing the plaform to "x86" but if i change the platform to "Any CPU" its not working.
I have few other dlls which are meanted for 64 bit machine so i need to keep the Platform to "Any CPU", but in this scenerio i am unable to register the Interop.Domino.dll
Is there any Solution to it.
Thanks and Regards,
Haseena
The Domino server api is available in x86 and x64 flavors, so you would need to build against the appropriate one. The client api is x86 only, and if you are linking to that, it would behave the way you describe.
Related
I have a rather large application built in visual studio which runs in x86 and have recently had a need to integrate a library which is only built in x64. Is there a way to utilize an x64 dependency in x86 mode or do I need to build a seperate application, somehow call it then maybe pass the data back to the parent application via a socket or something???? Any Suggestions?
I resolved this issue by creating a second application to run in 64 and set up listeners for console output and error output in order to pass data back
So there is this cool database called firebird, and it can be used embedded. the .net provider (as far as I understand) it uses the fbembed.dll, which comes in 2 flavors: 32 and 64 bits.
How does the .net data provider locates the correct one for the environment that is running in?
It does not select by itself. You have to have that 32bit/64bit dll in the current folder for the provider to load.
If the application is running in 32bit environment (32bit application in 32/64bit OS or AnyCPU application in 32bit OS), the provider will load DLL and expect it to be 32bit. Otherwise you will get bad image format error. Same applies for 64 bit environment.
For this reason, I always create MSI's of my application in two flavours - one with 32 bit dll and other with 64 bit. The application itself remains the same (AnyCPU) so the OS determines what DLL is required. I have been using Firebird embedded for more than 8 years now, and that practice has been easiest for me to follow.
We have a scenario where we require a plugin to do some custom steps in CRM 2011.
The client PC's are running 32 bit Outlook, due to the requierment for some silverlight applications extending crm, and Silverlight not supporting 64 bit.
Hence the plugins are failing when offline, presumably due to Outlook 32 bit not being able to launch 64bit plugin. The O/S's are all x64.
I have tried to deploy a 32 bit sampleplugin.dll to the CRM Server, but cannot register it, as I get a BadImageFormatException.
I just want to know if this is possible or not at all ?
I am guessing it's not possible, but just want some confirmation.
Thank,
Steve
You have to develop your plugin without a specific target architecture, this means you have to target Any CPU.
Dynamics CRM 2011 is 64 Bit on the server side. The plugin will be therefore executed in 64 Bit processes. That is the reason why you are getting the BadImageFormatException
You could not be sure, if you have 32 Bit or 64 Bit on the client side
In Visual Studio, are you explicitly targeting x64 when you build the plugins in VS? If so you might try All CPUs instead.
Is there a way to programmatically install device driver silently without cat file and without connecting the device on Windows Xp?
I'm using DriverPackageInstall function from Windows Driver Kit. And I can install driver only if device is attached. In other case I get an error: ERROR_NO_SUCH_DEVINST. But that method works fine with Windows Vista.
Another problem is warning dialog that asks user to continue or stop installation because cat file is missing . It shows on both OSes.
Any ideas?
You're not going to get past the signing prompt, as this is baked pretty far into windows, but there is a tool in the DDK called devinst that works well for device installations.
There's Source Code included with it.
The only way to avoid any UI interaction caused by your driver being unsigned is to hackishly preinstall the driver by modifying the registry directly.
Yes, it can be done. You'd have to modify the ACLs on the HKLM\System\CurrentControlSet\Enum registry key run as SYSTEM (by installing yourself as a service or using Sysinternals psexec -s), and add all the registry keys which Windows device installation would usually add - on your own. This will only work if you can predict precisely what your device's Device Instance ID would be -- e.g. in case of a USB device, the precise port it'd be connected to etc.
This is hacky, but the result would be the device being essentially "preinstalled". It'll be a lot of work, and it'll break on Windows Vista.
Microsoft really wants you to go the WHQL way on Windows XP, sorry :(
My .net windows forms app won't run on Windows 7 64 bit. Error says ADODB not found. Giving it the dll (by putting it in with the program) then gives error that ADODB provider is not properly installed. How to fix this?
The app must run as a 32 bit process as OLEDB is not supported in 64 bit processes.