我有一个内部使用的Winform应用程序,我通过SQL Express 2005通过ClickOnce
发布。该应用程序还引用了几个Microsoft.SqlServer
dll。我试图弄清楚特定版本设置如何工作。我在我的机器上安装了SQL 2008,他们有2005年。
如果我选择Specific Version = false
,它会关心用户是否拥有SQL 2005,还是依赖于dll。
具体来说,如果我没有指定Specific Version
这是否意味着它只会在GAC中查找该dll的任何版本?
答案 0 :(得分:3)
“特定版本”仅在编译时相关,在运行时无效。设置为False时,IDE将不会在引用程序集的[AssemblyVersion]发生更改时发出警告。这不是一个好主意,您应该知道您可能必须在代码中进行的更改,因为程序集已更改。
CLR不会在GAC中查找任何版本的程序集。只接受完全匹配。这是默认策略,您可以使用应用程序的.config文件中的<bindingRedirect>
覆盖它。
Afaik,没有SQL Server的提供程序特定于SQL Server版本号。对此不太确定。
答案 1 :(得分:1)
MSFT的一位与SQLExpress产品有关的人今天告诉我,很难弄清楚它是否已经安装,他们有一个程序可以实现它是Visual Studio中引导程序包的一部分。 (我对他安装SQLServer有多困难感到不满。)
在.NET应用程序中编写代码以连接和使用SQLServer数据库不是特定于版本的,Microsoft致力于保持向后兼容性。