【问题标题】:Visual Studio References: Specific Version setting questionVisual Studio 参考资料:特定版本设置问题
【发布时间】:2010-08-16 13:32:49
【问题描述】:
我有一个内部使用的 Winform 应用程序,我通过 ClickOnce 使用 SQL Express 2005 发布。该应用程序还引用了几个 Microsoft.SqlServer dll。我试图弄清楚特定版本设置是如何工作的。我的机器上安装了 SQL 2008,他们有 2005。
如果我选择Specific Version = false,它会关心用户是否拥有 SQL 2005 还是取决于 dll。
具体来说,如果我不指定 Specific Version,这是否意味着它只会在 GAC 中查找该 dll 的任何版本?
【问题讨论】:
标签:
sql-server
visual-studio
dll
clickonce
【解决方案1】:
“特定版本”仅在编译时相关,在运行时无效。当设置为 False 时,当参考程序集的 [AssemblyVersion] 发生更改时,IDE 不会抱怨。这不是一个好主意,您应该注意您可能必须对代码进行更改,因为程序集发生了变化。
CLR 不会在 GAC 中查找 任何 版本的程序集。只接受完全匹配。这是默认策略,您可以在应用的 .config 文件中使用 <bindingRedirect> 覆盖它。
Afaik,没有特定于 SQL Server 版本号的 SQL Server 提供程序。不太确定。
【解决方案2】:
MSFT 的一位与 SQLExpress 产品相关的人今天告诉我,很难确定它是否已经安装,他们有一个程序可以执行此操作,它是 Visual Studio 中引导程序包的一部分。 (我对他说安装 SQLServer 有多么困难。)
在 .NET 应用程序中编写代码以连接和使用 SQLServer 数据库不是特定于版本的,Microsoft 致力于保持向后兼容性。