Strong Naming an ASP.Net Project

  • Thread starter Thread starter Manuel Lopez
  • Start date Start date
M

Manuel Lopez

Hello,

I have a Web Project (UserControls.dll) with some user controls that
is shared by many asp.net web applicattions.

What we do is copy UserControls.dll to all the applications bin
folders an this works correctly.

We want to have this shared code in the GAC.

Wit other non-web projects we create a snk file, add it to the project
and compile. Later we register this dll manually in the GAC.

I have been trying to do this with a web project , and all the time I
get an error saying that it cannot read the snk file.

Is it possible to strong name the generated dll of a web project?

Thanks in Advance.

Manuel
 
Yes it is, but with ASP.NET there are two places where a binary is built.
You may have to put the strong name in the temporary directory where things
are built:

c:\documents and
settings\<userName>\VSWebCache\<machineName>\<applicationName>
 
Hello Chris,

Thanks for the reply.

Our problem is that we cannot compile our web project with
the user controls when we add a snk file and reference it
from Assembly file.

It seems as if you cannot use then with web projects.
 
I may be missing what you are asking here. Are you trying to compile the
project you are strong naming and failing? If that is the case, then you
need to move the SNK file. The error that is generated should tell you the
directory it is searching in and failing to find it. Have you compiled and
strong named an assembly, and having trouble referencing it? You should
definitely be able to reference a strong named file - that also works. You
just need to make sure it is in the search path. What is the error that you
are seeing?
 
Hello Again Chris,

My problem is that i can´t generate the strong name "web"
project.

The snk file is the at the same level of of vbproj file,
and in assembly i have :

<Assembly: AssemblyKeyFile("..\..\Keys.snk")>

I have tried copying the snk file to the bin directory,
changing the path and it just doesn´t work for a "Web"
project.

Maybe you just can´t strong name a "Web" through Visual
Studio.

Thanks
 
You can strong name it, you just have to manually drag the SNK file to the
VSWebCache folder (as indicated in my first post). VS.NET does not provide
the mechanisms, though the error message should help you locate the proper
directory. The folder in inetpub is NOT where it goes. I have done it
before, I just don't have any on this machine to give you the exact
location, but I promise you that it works.

--
Chris Jackson
Software Engineer
Microsoft MVP - Windows Client
Windows XP Associate Expert
--
More people read the newsgroups than read my email.
Reply to the newsgroup for a faster response.
(Control-G using Outlook Express)
--

Hello Again Chris,

My problem is that i can´t generate the strong name "web"
project.

The snk file is the at the same level of of vbproj file,
and in assembly i have :

<Assembly: AssemblyKeyFile("..\..\Keys.snk")>

I have tried copying the snk file to the bin directory,
changing the path and it just doesn´t work for a "Web"
project.

Maybe you just can´t strong name a "Web" through Visual
Studio.

Thanks
 
I guess I should point out, for the sake of completeness, that this may not
be the best idea. The reason I have strong named ASP.NET assemblies is
basically just to see if it can be done. (Well, FXCop was barking...)
However, note that the model for ASP.NET is not *complete* compilation, but
rather compilation of the code behind, followed by JIT compilation of the
declarative ASPX page. So, your derived forms won't actually exist in the
strong named assembly. What you should consider is developing a class
library of classes that derive from the UserControl class to provide the
basic functionality that you need, and then provide declarative pages whose
code behind inherits from this. This just occurred to me, so I figured I
would add this appendix...
 
Back
Top