如何在Visual Studio中为项目引用设置“特定版本”属性

我有一个包含几个项目的Visual Studio解决方案,并已将项目之间的引用设置为项目引用。

添加对程序集的引用时,引用的属性包含设置

Specific Version = True|False

项目引用缺少此属性。 怎么设置? 我希望我的解决方案能够在bin文件夹中加载任何可用的程序集(无论哪个版本)。

当反序列化工作流实例(Workflow Foundation)并同时更新依赖项时,我遇到了问题。

我认为问题在于你所要求的是不可能直接使用项目引用,我认为由于链接的性质,我总是隐含地变成“显式版本”。

可以这样做的方式(调用当前引用的项目A和引用项目B):

  • 让您想在解决方案中引用项目,就像现在使用项目参考一样
  • 显式设置依赖关系链,以便首先构建“引用”项目
  • 首先手动构建引用的项目A.
  • 在项目B中创建一个程序集引用到项目A中的构建结果
  • 将程序集引用设置为“Specific Version = false”

构建顺序(依赖)将保证A始终在B之前构建,B将从A的二进制输出目录引用它。

(虽然,它有点脆,我不推荐它,因为如果设置不正确,或者太阳与星星错误对齐,或者其他一些如此,很容易得到错误的结果)

我可能会误解您的问题,但是当您添加项目引用时,项目的程序集始终会加载到构建项目时引用它的任何项目中。 因此,您将始终在该项目的bin文件夹中拥有最新的可用程序集。 在这方面,VS对待项目的方式与其他组件不同。

您可以添加对项目输出dll的引用而不是项目。 然后,您将能够设置“特定版本”设置。

我找到了解决问题的方法。 这里描述的非常详细。 问题不在于错误的项目引用,而是更多的工作流实例问题的序列化。

感谢所有试图提供帮助的人。