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

我们是在同一个应用程序中从事同一项目的两家公司。 每周我们交换我们的程序集(而不是代码)并引用对方的dll。

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

这个答案将基于你正在版本化你的dll的假设。

如果将SpecificVersion设置为true(这是添加引用时的默认值),那么项目将使用特定版本(例如1.0.0.0)引用该dll。 如果在以后,你得到一个新的DLL(比如说1.0.1.0),那么你将不得不删除旧的DLL引用,并添加新的引用。 这是因为当你有一个新的版本1.0.1.0时,该项目特别寻找1.0.0.0。

替代方法是将SpecificVersion设置为false,这会告知项目find最新的可用dll并使用该dll。 这个问题是,项目现在需要在各个地方“寻找”你所引用的dll,这会增加你的构build时间。 它会做到这一点,即使它知道你所引用的DLL的path。 我不确定这是否是一个错误,或者如果这是由devise完成的。 这可能是检查,看看是否有任何更新的DLL除了你所引用的(可能在GAC或其他地方)。

这里有一篇文章更详细地描述了这个问题。