I'm finding that one new change required on upgrading a project from .NET
1.x to 2.0 occurs when wanting to make an assembly's internals
accessible to another assembly i.e. creating a friend
assembly.
In .Net 1.x, one might have default project assembly
attributes as follows:-
1 [assembly: AssemblyDelaySign(false)]
2 [assembly: AssemblyKeyFile("")]
However, if you add the InternalsVisibleAttributeTo attribute ...
1 [assembly: InternalsVisibleTo("AxScriptTest")]
... you'll get a compilation error:-
Friend assembly reference 'AxScriptTest' is invalid.
Strong-name signed assemblies must specify a
public key in their InternalsVisibleTo
It seems that the existence of these attributes is enough to make VS2005
think that the assembly is strongly named. To solve this, simply remove
the AssemblyDelaySign and AssemblyKeyFile attributes, or do something like the
following:-
1 #if !DEBUG
2 [assembly: AssemblyKeyFile(@"D:\Alintex\Alintex.snk")]
3 #else
4 [assembly: InternalsVisibleTo("AxScriptTest")]
5 #endif