Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1090
  • Last Modified:

Strong Name error building assembly

I generated a strong name key file using the sn.exe tool, and assigned the key file to my VB.NET assembly.  But when I build the assembly I receive an error saying "Unable to emit assembly: Referenced assembly 'Interop.FooBar' does not have a strong name".  FooBar is a vendor COM component.  How can I get past this error?

0
d532335
Asked:
d532335
  • 4
  • 3
1 Solution
 
tgannettsCommented:
The Interop assembly the IDE generates for the COM component is not strongly named. You need to generate an Interop assembly with a strong name:

You can use the tlbimp.exe utility to generate a strongly-named Interop assembly from the Foobar dll using a strong name key file you have generated:

From the Visual Studio command line prompt:

tlbimp FooBar.dll /keyfile:FooBar.snk /out:interop.foobar.dll /namespace:foobar

This should create a strongly-named interop assembly which you can reference instead of the one the IDE generates for you. This should get rid of your problem.

Hope this helps

Tom
0
 
d532335Author Commented:
When I used the tlbimp on the dll it gave me an error saying that it wasn't a valid type library.  I instead used the tlb file.  This appeared to work, but I received several errors all similar to the following


TlbImp warning: At least one of the arguments for '_IOraBindVariable.GetPersistentPointer' can not be marshaled by the runtime marshaler.  Such arguments will therefore be passed as a pointer and may require unsafe code to manipulate.


I am in the process of testing.  Thought I would get your opinion.
0
 
d532335Author Commented:
I have an ocx that I add as a reference, which creates an interop dll under the obj directory.  No problem up to now because I can run the tlbimp that you suggested.  But when I goto the Customize toolbox and add the same control so that I can drop it on my form, it creates another dll under the obj directory called AxInterop.XXX.dll.  Therfore now I have two Interop dlls created from the same ocx.  One is called AxInterop.xxx.dll and the other is called Interop.xxx.dll.  How do I give both of these a strong name?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
d532335Author Commented:
Since I have asked multiple question on this thread, I was going to increase the point value, which use to be obvious.  How do you add points to a question now?
0
 
Bob LearnedCommented:
Are you still having a problem with this?

Bob
0
 
d532335Author Commented:
Yes I never received any postings on my follow-up issue
0
 
Bob LearnedCommented:
You only need the one interoperability library.  When you created the AxInterop library, it was similar to using tlbimp.  You should probably keep the AxInterop reference.

Bob
0
 
Bob LearnedCommented:
Did this help you?

Bob
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now