C# 不包含Dll的版本与包含Dll并将SpecificVersion设置为False是否不同?

C# 不包含Dll的版本与包含Dll并将SpecificVersion设置为False是否不同?,c#,dll,msbuild,visual-studio-2013,C#,Dll,Msbuild,Visual Studio 2013,给出AjaxControlToolKit的这两个csProj参考定义: 错误的 ..\packages\AjaxControlToolkit.7.1213\lib\40\AjaxControlToolkit.dll ..\packages\AjaxControlToolkit.7.1213\lib\40\AjaxControlToolkit.dll 这是否会改变VS查找dll的方式,是否可能会改变引用的dll 部署代码后,在运行时是否存在任何潜在影响?Hmm,否,如果DLL存储在名为AjaxCo

给出AjaxControlToolKit的这两个csProj参考定义:

错误的 ..\packages\AjaxControlToolkit.7.1213\lib\40\AjaxControlToolkit.dll ..\packages\AjaxControlToolkit.7.1213\lib\40\AjaxControlToolkit.dll 这是否会改变VS查找dll的方式,是否可能会改变引用的dll


部署代码后,在运行时是否存在任何潜在影响?

Hmm,否,如果DLL存储在名为AjaxControlToolkit.7.1213的子目录中,则不会。将版本号和修订号作为存储位置的一部分应该可以降低错误版本的风险。@HansPassant这么说,只要提示路径指向Include属性中指定的版本,就没有什么区别了?因此,它也不会对运行时产生影响?HintPath显式地告诉编译器要使用哪个引用DLL文件。运行时使用的DLL取决于您的部署方式。通常的方法是将Copy Local属性设置为True,以便在生成目录中获取引用程序集的副本。然后将其与项目生成结果一起部署,以便始终使用编译所依据的版本运行。那样就不会发生意外。