Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set "Specific Version" property for project references in Visual Studio

I have got a Visual Studio Solution containing several projects and have set up the references between the projects as project references.

When a reference to an assembly is added, the references' properties contain a setting for

Specific Version = True|False

This property is missing for project references. How can it be set? I'd like my solution to load any available assembly (no matter what version) in the bin folder.

I've had a problem when a workflow instance (Workflow Foundation) was deserialized and the dependencies were updated meanwhile.

like image 449
kay.herzam Avatar asked May 27 '09 13:05

kay.herzam


People also ask

How do I change the reference version in Visual Studio?

Open the project in Visual Studio. Right-click on the project's References folder and select Add Reference to open the Add Reference dialog box. Locate the new assembly version in the Add Reference dialog for each Infragistics assembly listed in your References folder.


4 Answers

I think the problem is that what you are asking is not possible directly with a project reference, I think that always implicitly turns into an 'explicit version', because of the nature of the link.

The way you could do this (calling the currently referenced project A, and the referencing project B):

  • Have the project you want to reference in your solution, just like you do now with the project reference
  • Explicitly set the dependency chain so the 'referenced' project is built first
  • Build the referenced project A once first manually
  • Create an assembly reference in project B to the results from the build in project A
  • Set the assembly reference to 'Specific Version = false'

The build order (dependency) will guarantee that A is always built before B, and B will reference it from the binary output directory of A.

(altho, it's a little brittle and I would not recommend it since it's easy to get wrong results if the settings are not all right, or the sun aligns with the stars wrong, or some such)

like image 97
jerryjvl Avatar answered Oct 21 '22 03:10

jerryjvl


I might be misunderstanding your question, but when you add a project reference, the project's assembly is always loaded into any project that references it when the project is built. Therefore, you'll always have the latest available assembly in the bin folder for that project. VS treats projects differently than other assemblies in that regard.

like image 30
Joseph Avatar answered Oct 21 '22 03:10

Joseph


You can add references to project output dlls instead of projects. Then you will be able to set Specific Version setting.

like image 30
Juozas Kontvainis Avatar answered Oct 21 '22 04:10

Juozas Kontvainis


I have found the solution to my problem. It's described pretty detailed here. The problem is not a matter of wrong project references, but more a de/serializing of workflow instances question.

Thanks to everybody who tried to help.

like image 31
kay.herzam Avatar answered Oct 21 '22 03:10

kay.herzam