Publishing .NET 5 Project including COM References - c#

I have a .NET 5 Project running. I have added a COM Reference to the Zebra Scanner SDK. The SDK is built for the .Net Framework but I want it to run on .NET 5. I can build the project on my machine, as the SDK is installed on my machine.
The problem now is, that I want to build the project including the reference. So I can easily copy the generated .dll and .exe files to a new computer. Without having the need to install the Scanner SDK there.
Is there a way to achieve this? Maybe to create a dll from the COM Reference and use that?
SDK Info
Scanner SDK Sample Projects

I found a working solution for the Zebra Scanner SDK. In this case you can identify the SDK location and there find the sample projects. They contain a InterOp.CoreScanner.dll.
Just copy this file to your project folder, use it as a reference and you are good to go.

Related

C# Setup with external DLL

I am trying to make a setup for a C# application in .NET 3.5.
The application runs an other application which was compiled for .NET 4.5 and uses some DLLs. I want to add this application to the application folder in the setup.
I can't add the DLL's to the setup as a file, there is an error popping up. ("The operation could not be completed")
If I add the DDLs to the project folder and then use them as content, I get an "Unrecoverable build error" when I create the project.
How am I supposed to add these DLLs? I do not care how, but I need them in the project folder.
Thanks.
PS: I am using the standard setup for VisualStudio 2008.
With Visual Studio, when you add your external DLL as a reference in a project, it will automatically be added to the setup.
First of all, isn't there any way to find an earlier version of the assembly targeting .NET 3.5? Or if you have access to the source, remove/change the .NET 4.5 specific code and recompile?
Otherwise, you can try to wrap you dll around a COM interface, as described here. This article targets .NET 4 dll used with .NET 2.0 but the mechanism should still work in your configuration. I have used it successfully myself for 2.0/4.0 interop.
Here is another trick you can try.
Consider that in either case you will need .NET 4.5 installed on target computer, in order to work. So you can move your project from 3.5 to 4.5. I understand that you use VS2008 which doesn't have .NET 4.5, but you can use express (free) edition of Visual Studio from here -> Microsoft Download Page
I solved this problem using a simple trick:
The errors came only from the DLLs written in .NET 4.5. The executable (.exe) did not cause any errors. What I did is to package all the DLL's into the exe using the ILMerge tool.
Then I added the .exe file to the library and everything worked like a charm.
ILMerge download site (Microsoft)

Installing Twilio C# api with VS2008

I have successfully installed and tested twilio api with C# .Net framework 4.0 using VS2010. I referred to the link https://www.twilio.com/docs/csharp/install which has instructions to install with VS2010/12
Now I have another computer where I have to install twilio C# api with .net framework 3.5 and VS2008. How can I do that ?
I tried to copy the dlls and take reference but it didn't work.
Kindly let me know how can I install twilio api for C# with .net framework 3.5 and VS2008 ?
Twilio evangelist here.
You will likely need to manually download the NuGet package since there is no built in way in VS2008 to do it. There are a bunch of ways to do this:
NuGet Package Explorer
NuTake Chrome extension
NuGet support for Visual Studio 2008
Once you get the nupack file change its file extension to .zip, extract the contents and locate the folder that contains the .NET 3.5 version of the assemblies. Then add to your project.
Or you can always pull the source from Github.
Hope that helps.
Had to add SMS support to a legacy VS2008 app, and here's an easy way to do it.
Use VS2010 or later, create some dummy project, and then use Nuget Package to download Twilio. It will create a 'packages' folder inside your solution directory.
Use VS2008 to open your actual project.
Right click on references, select 'Browse' tab, and browse to the packages folder inside your dummy project you obtained in step one.
You need to add two references (one for Twilio, and one for RestSharp, which Twilio depends on). They are located in these two folders:
...\packages\Twilio.4.4.1\lib\3.5\Twilio.Api.dll
...\packages\RestSharp.105.2.2\lib\net35\RestSharp.dll
The versions I specify above are targetting .NET 3.5

How to install an additional .NET library?

I'm a beginner .NET programmer (C# and IronPython).
I've come across WatiN .NET library which will show handy for what I'm trying to do. The website claims that it is compatible with any .NET language, so I assume it's compatible with IronPython as well.
How do I go about installing it? Their website only has some instructions, using NUget in Visual Studio. I neither use Visual Studio nor am I interested in it. How and where would I put the downloaded files in order to make it work with IronPython?
A library is a .dll file ( or many ), if you used nuget there should be a folder called packages in your solution folder and in there a folder with your dll.
What you want is to add a reference to that dll. Have a look at this

Error when using Symbol/Motorola Fusion dll - WinCE 6.0

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.

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