Click here to Skip to main content
15,888,351 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi, I have 64 bit windows 7. I created classlibrary (VS2012) and SN/registered it with

C:\>sn -k C:\API3\test\bin\Debug\mykey.snk
C:\Windows\Microsoft.NET\Framework\v4.0.30319>regasm C:\API2\test\obj\Debug/test.dll /tlb /codebase

it registers just fine and ASP can create the object just fine (IF I set APP POOLING to 32 bit=true.)

But how can I register this dll for 64bit version?

I have tried to change the "target CPU:" under compile to x64 but when I want to register the DLL I get " in not a valid .DLL". I even tried regsvr32 but no luck. any suggestion?
Posted
Comments
Sergey Alexandrovich Kryukov 4-Sep-13 12:47pm    
Did you take into account that there are two different 64-bit instruction-set architectures: x86-64 and Itanium (IE64).
Also, why would you do such obsolete use of a .NET assembly as registering it as COM? For ASP.NET, this is not needed.
—SA
dean rezo 4-Sep-13 13:00pm    
I have to use classic ASP since I dont have any other choice. can you give me more details about architectures: x86-64 and Itanium (IE64)?
Sergey Alexandrovich Kryukov 4-Sep-13 13:04pm    
Wait a minute. You tagged the question ASP.NET, but now you are saying it's not? Why using .NET assembly then?
—SA

1 solution

Please see my comments to the question.
dean rezo asked:
Can you give me more details about architectures: x86-64 and Itanium (IE64)?
Sure. Please see:
http://en.wikipedia.org/wiki/Instruction_set[^],
http://en.wikipedia.org/wiki/X86-64[^],
http://en.wikipedia.org/wiki/Itanium[^].

When you build a .NET project, you have four options for the "Platform" option ("Platform" means instruction-set architecture in Visual Studio and MSBuild jargon): one 32-bit architecture, two 64-bit architectures, plus "AnyCPU". "Any CPU" is possible because CIL code of an assembly is generally abstracted from the instruction-set architectures, as .NET is based on JIT compilation. Please see:
http://en.wikipedia.org/wiki/Just-in-time_compilation[^].

In a .NET assembly, using a specific instruction-set architecture generally makes no sense. However, it is important when some native code is used, or the assembly is used by some native (unmanaged) code. Even in this case, most of the assemblies involved in some process/application should be compiled (marked) as "Any CPU".

—SA
 
Share this answer
 
Comments
dean rezo 4-Sep-13 13:54pm    
Good point. Thanks for the links
Sergey Alexandrovich Kryukov 4-Sep-13 14:55pm    
Sure.
—SA

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900