.net引用的特定版本是真还是假?

时间:2009-06-30 12:45:42

标签: .net dll reference

我们是两家在同一个应用程序中处理同一项目的公司。我们每周只交换 我们的程序集(不是代码)并引用彼此的dll。

在添加对项目的引用时,specificversion的最佳做法是什么? 具体来说,我们何时应该使用 specificversion true值,在什么情况下我们应该使用 false

1 个答案:

答案 0 :(得分:47)

这个答案将基于您正在对dll进行版本控制的假设。

如果将SpecificVersion设置为true(这是添加引用时的默认值),则项目将引用具有特定版本的dll(例如1.0.0.0)。如果稍后你给了一个新的dll(比如1.0.1.0),那么你将不得不删除旧的dll引用并添加新的引用。这是因为当你有一个新版本1.0.1.0时,该项目专门寻找1.0.0.0。

替代方法是将SpecificVersion设置为false,告诉项目找到最新的可用dll并使用该dll。这个问题是项目现在需要在你引用的dll的各个地方“寻找”,这可能会增加你的构建时间。即使它知道你引用的dll的路径,它也会这样做。我不确定这是一个错误还是由设计完成的。它可能会检查除了您引用的那个之外是否还有更新的dll(可能在GAC或其他地方)。

这是一个article,可以更详细地描述这个问题。