Error when using Symbol/Motorola Fusion dll - WinCE 6.0 - c#

When I run any project from Visual Studio, it works excellent (on Motorola MC 3190 - WinCE 6.0)
However, when I install and run the application on the device, I get this error:
No compatible FusionInterface dll found, Expected version is 4.1.0.1 or higher version having the format 4.x.x.x
What could be the problem?

In my case, deploying Symbol.Fusion.dll and FusionInterface.dll files in the same directory than my executable has resolved this error.

You must install the symbol.all.arm.cab file. If you are using Windows CE then you need the armv4 version. If you are using Windows Mobile, then you need the armv4i version.
Also, make sure there is no local copy of the DLLs in your application's directory; this could be possibly causing a version mismatch.

Adding a reference to Symbol.ResourceCoordination worked for me. Per the CS_FusionSample1 code example included with the Motorola EMDK v2.9, the relevant Symbol references are Symbol, Symbol.Fusion, and Symbol.ResourceCoordination.
Note, I'm building for a Motorola 9190 handheld under Windows CE 6.0.

Fusion Interface DLL Version Compatibility
EMDK for .NET access Fusion Public API via Fusion interface DLL as mentioned in the Overview section. There can be different versions of Fusion Public API and in return many versions of Fusion Interface DLLs.
Version Incompatibility Issue
If this DLL is incompatible with EMDK, an appropriate meaningful error message will be provided in the exception when trying to access Fusion. This occurs when creating Config and WLAN objects.
Possible Messages
Older and incompatible FusionInterface dll 1.0.0.1 found. Expected version is 2.0.0.3 or higher version having the format 2.x.x.x
Newer and incompatible FusionInterface dll 3.1.0.5 found. Expected version is 2.0.0.3 or higher version having the format 2.x.x.x
Solution
The DLL version incompatibility arises because of the two files (Fusion Interface DLL and the Fusion Assembly DLL) taken from different EMDK packages. To fix the issue,
Method 1:
Remove "Symbol Managed Class Libraries" using "Remove Programs" in the control panel of the device.
Check "\Windows" folder of the device for any existence of "FusionInterface.dll" and if so, delete it.
Take the "symbol.all.arm.cab" from EMDK installed location, copy to the device and run installation.
The typical location is the appropriate sub directory (wce400\armv4 or wce500\armv4i) of "\Program Files\Enterprise Mobility Developer Kit for .NET\v2.x\SDK\Smart Devices".
Run the application.
Method2:
Copy the appropriate DLL to the \Windows directory of the device.
Run the application
Note: This DLL is not separately available in the EMDK for .NET package.

Related

including the OracleClient dll file with release version

I had made small c# program that use oracle database so I had to include
reference
Data.OracleClient
after releasing my project and move it to the working environment I got problem
which is missing the reference Data.OracleClient
why the Data.OracleClient won't be included within the release version of my project ?????
what should I have to do to force the including of that library which is necessary to let my project work sinces i am not able to copy the dll file to all PSs on my network ??
and if i used the
Oracle.DataAccess.Client
how i know the equivalent keyworks with this library ??
should I rebuild the whole project ?!
Data.OracleClient is a Microsoft DLL which is usually installed on each Windows PC, i.e. :NET Framework. However, it has been deprecated for many years and should not be used for new projects.
You may supply Oracle.DataAccess.Client with you application, however the Oracle Client must be installed on the target machine.
As an alternative consider to use the ODP.NET Managed Driver, you can download it from here: http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
In this case you have to supply only single DLL Oracle.ManagedDataAccess.dll

How do I install Microsoft.SqlServer.Management.SqlParser?

My c# installer project came up with a load of warnings when I rebuilt it on a new machine. The warnings were of the ilk that they were looking for version 11.0.0.0 of a dll where only version 10.0.0.0 existed. This I found was due to the version of SQL Server installed (SQL Server 2008 R2). Most of the dll's were specifically due to the version of the Share Management Objects package not being version 11.0.0.0.
So I installed SqlSysClrTypes.msi (x86) that is required for Shared Management Objects. I then installed ShareManagementObjects.msi (x86). I got them from here.
Some of the errors have gone, but now I get 2 that seem to reference the same dll that should have been installed from SharedManagementObjects.msi. It must be obtainable / installed with something as I currently have version 10.0.0.0.
The errors are:
Unable to find dependency 'MICROSOFT.SQLSERVER.MANAGEMENT.SQLPARSER'
(Signature='89845DCD8080CC91' Version='11.0.0.0') of assembly
'Microsoft.SqlServer.Smo.dll'
and:
Unable to find dependency 'MICROSOFT.SQLSERVER.MANAGEMENT.SQLPARSER'
(Signature='89845DCD8080CC91' Version='11.0.0.0') of assembly
'Microsoft.SqlServer.Management.SmoMetadataProvider.dll'
Everything I've read suggests that Microsoft.sqlserver.management.sqlparser should have been installed as part of SharedManagementObjects.msi. Is there something I can do to get this dll? Is there something else I need to install such as the Native Client?
I solved the same problem by installing the file ENU\x64\TSqlLanguageService.msi. You can find it here:
Select here the file TSqlLanguageService.msi

Installing RSAT for Windows 8.1 does not place expected assemblies in the GAC

I installed the Remote Server Administration Tools for Windows 8.1 (http://www.microsoft.com/en-gb/download/details.aspx?id=39296) expecting that this would populate the GAC with the Microsoft.GroupPolicy assemblies.
The tools themselves installed successfully, however the expected assemblies are not in the GAC.
I have repeated the exercise with the Windows 7 tools (http://www.microsoft.com/en-gb/download/confirmation.aspx?id=7887) and those assemblies do appear in the GAC following installation.
Has anyone else experienced the same issue? If so, how did you resolve it?
You are just looking in the wrong location, the screen-shot shows the GAC for the v2 runtime. Stored in c:\windows\assembly. You however downloaded a Win8.1 program, it almost certainly uses .NET 4.5 since that's the version that's pre-installed on Win8.
Which uses a different GAC, the v4 version is located in c:\windows\microsoft.net\assembly. There is no shell extension for it that flattens the view, you can see the directories in the GAC as-is. Easy enough to navigate, the GAC structure isn't very complicated.
Of course you'll have to target .NET 4.x in your project to use these assemblies. And keep in mind that it still might favor local deployment instead of the GAC, you'll have to look in the install directory as well. I didn't try it.

JSON .Net Windows Mobile Error when serializing

I am running this bit of code:
string serialized = JsonConvert.SerializeObject(somethingToSend);
And it throws this exception:
MissingMethodException: Could not load type 'System.Runtime.Serialization.StreamingContext' from assembly 'mscorlib, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC'.
Here is my configuration:
Visual Studio 2008 (with all the latest service packs etc)
Smart Device project targeting Windows Mobile 6 .Net 3.5
Json DotNet version 4.5 Release 7 (referencing the DLL from the WindowsPhone folder in the zip)
The answer to this question "Is there a library to read JSON in C# on Windows Mobile?" implies that it should work.
I am running it in debug with the real device attached (so no emulator) where I have previously installed the CAB file from here without error:
C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\NETCFv35.wce.armv4.cab
The application runs fine until I click the button that is running the line above, so does anyone know what I am missing?
This thread "Json.Compact.dll for Windows CE 5.0?" suggests that I would need the Windows SDK installed, which I have. Given it is running on the device itself I guess that is not going to be the fix anyway.
The other suggestion is to build from source but like the author of the question I cannot load the project file into VS 2008 to do that. I could create a new project and include the source files and try to get it to compile but before I do that I thought I would ask here if it is worth it or if there is something else missing from the installation on the device perhaps? Or maybe I should be using an alternate build?
So I needed to RTFM! The readme file says:
Microsoft stopped support for the Compact Framework in Visual Studio 2010.
For a Compact Framework 3.5 build download Json.NET 3.5.
So I grabbed the most recent 3.5 version which is: Json.NET 3.5 Release 8, updated my reference to point to the Newtonsoft.Json.Compact.dll assembly, ran it and it worked fine.

Windows Powershell SDK and System.Management.Automation.PSObject

I have a build error in a c sharp program that I am compiling in Visual Studio 2008 on a Windows Server (2008, I guess) SP 2 64-BIT OS.
It says that 'System.Management.Automation.PSObject' is defined in an assembly that is not referenced.
I did some searching in MSDN and I found that this seems to be part of the Windows Power Shell SDK. http://msdn.microsoft.com/en-us/library/system.management.automation.psobject(VS.85).aspx
The problem is that I already have the Windows Powershell. If this is all I need, how do I make use of it or reference it in the C Sharp IDE. If I need to download something extra (ie the SDK), where do I go to do this and install it? I could not find anything online.
If you can't find it there, type this at a PowerShell prompt.
Copy ([PSObject].Assembly.Location) ~/Desktop
Look in C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0 for System.Management.Automation.dll and if it exists, add it as a reference in your C# project. If it doesn't exist, then download the Windows SDK which will put the file in the above location.
To correctly reference PowerShell, you should reference the PowerShell inside the GAC. The PowerShell included with the Vista SDK is PowerShell V1.0, and this technique will reference 1.0, 2.0, or X.0, whatever is installed. Referencing the SDK assembly will also not create the most portable of projects, because you have to have the SDK installed to build the project, rather than just Visual Studio and Windows.
Unfortunately, referencing GAC items is not something the visual studio UI does cleanly, so you have to go hand edit the CSProj file. Find the section with elements, and add this reference element.
<Reference Include="System.Management.Automation" />
This will reference the latest System.Management.Automation installed on the system, no matter what version it is.
Hope this helps

Categories

Resources