We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

Assembly Strong Name

Hi,

preamble: I bought Syncfusion products and the source code.

I need to execute a program that uses Syncfusion assembly on network.

The problem is that the program path and the syncfusion assemblies path are different. These are not in the same directory.

For example:
MyProgram.EXE --> \\MyServer\\MyCondivision\Base\Prog32
Syncfusion Assemblies --> \\MyServer\\MyCondivision\Base

Syncfusion Assemblies are not the only in that directory; there are many other company assemblies that are correctly loaded at runtime (these assemblies reference and use syncfusion assemblies). To load other company assemblies in a different location I attach to AppDomanin AssemblyResolve event; it's very important to know that company assemblies are signed (with company strong name) and the users (thousands) have registered that strong name (we can't register any other strong name in the client machines).

So, the problem is that the Syncfusion assemblies are not signed with our strong name. I workaround this problem using the BuildManager utility adding a strong name to Syncfusion assemblies.

The only problem is that obviously I haven't the Syncfusion.Core source code and so I can't sign it. If I don't sign the Syncfusion.Core it can not be loaded on network if it isn't in the same EXE location.

For our company it is a problem.

How can I resolve this problem? How can I sign the Syncfusion.Core with our company strong name?

One way to resolve the problem is to use the ILMerge tool and merge Syncfusion.Core in other assembly signing it with our strong name and then reference it in the Syncfusion.Pdf.Base assembly. It can be a valid/right idea?

If not, how can we resolve this important problem?


Thanks.

Regards,
Stefano.







1 Reply

KA Kannan Syncfusion Team March 23, 2011 10:57 AM UTC

Hi Stefano,

Thank you for using Syncfusion products.

Q) The problem is that the program path and the syncfusion assemblies path are different. These are not in the same directory.

A) Could please follow the steps to add the reference path from your project?

1. Open your Visual Studio project.

2. Select Project-> properties from menu bar.

3. In "Reference Paths" tab from project properties window and add the relative path of the Essential Studio assemblies from browse button.

4. Select "Add Folder" button to include the reference assemblies.

5. Select all the Syncfusion assemblies then goto properties and select the "Copy Local" to True.

Could you please follow the steps to sign the assemblies with strong name?

1) Open the Visual Studio command prompt based on your .Net framework version with following location.

Start->All Programs->Microsoft Visual Studio -> Visual Studio Tools-> Visual Studio command prompt.

2) Enter the below command to install the strong name to dll.

sn -i "" "".

Ex: >sn -i "D:\Temp\keypair.snk" "D:\Temp\Assembly"

Let me know if you have any concerns.

Regards,
Kannan




Loader.
Live Chat Icon For mobile
Up arrow icon