views:

100

answers:

2

I have two projects A and B. Project A makes use of type X in project B, so I have a reference to B added in A. Everything built fine.

I signed project B using a strong named key file. Everything still built fine.

Then I decided to change the strong named key file for B. I rebuilt project B ok. When I try to build project A I receive the error "Error 1 The type X is defined in an assembly that is not referenced. You must add a reference to assembly B, Version=1.0.0.0, Culture=neutral, PublicKeyToken=95b41b0d6571627b'. "

So I deleted the reference in project A and added it back in again, no joy. I can dbl click on the project B reference in project A, open the object browser and see type X in there ok. I also fully qualified the type X objects in A and the intellisense picked them up fine but it still does not build.

I thought that changing the key file I might need to up the revision, so I changed assembly B version to 2.0.0.0 but still A complains that it needs version 1.0.0.0. Looking at the properties of the B reference in A it definitely points to the correct version and indeed it shows as 2.0.0.0

I could live with using the existing key file but i'd like to understand where I am going wrong if possible.

Thanks in advance.

A: 

You could try editing the project A's project file (projectA.csproj). To do this through visual studio right click on the project->unload project and then on the unloaded project right click->edit file. Search for the reference to project B in there, and try to correct as necessary

bottlenecked
@bottlenecked, thnx I had a look in there but the reference looked ok. I've gone down the route of unsigning everything, getting it all building again, and then applying the new keyfile.
CSharpHolder
+1  A: 

Based on what you said in the comments, I would say it's most definitely something up with Project A.

Perhaps these steps will help fix it:

  1. Remove the reference to project B and save
  2. Crack open the .csproj file with notepad or something
  3. Look for any references to Project B in there (maybe a hintpath node) and remove the node.
  4. If Project A happens to be an ASP.NET project, look in your web.config or your aspx page headers for any references to Project B.

Once you remove all references to the project, reload the project as bottlenecked suggested and see if that fixes it for you.

Steve Danner