Visual studio 2008 VisualStudio2008SP1程序集引用混淆
我正在Windows XP SP3上使用Visual Studio 2008 SP1为Windows CE 6开发一些.NET Compact Framework 3.5 SP1解决方案 我想在解决方案中使用SQL Server Compact 3.5 SP2,但是我注意到Visual Studio处理程序集引用的方式非常奇怪 我已经安装了“适用于Windows桌面的SQL Server Compact 3.5 SP2”(sCeruntime_x86-ENU.msi)和“适用于Windows Mobile的SQL Server Compact 3.5 SP2”(sCedeviceruntime ENU.msi)。前者将两个版本的System.Data.SqlServerCE程序集和一个版本的System.Data.SqlServerCE.Entity程序集放入Windows XP的GAC中,而后者似乎没有将任何程序集放入Windows XP的GAC中。这里看起来已经很奇怪了,因为GAC报告这两个程序集的版本对于System.Data.SqlServerCE是3.5.1.0和3.5.0.0,对于System.Data.SqlServerCE.Entity是3.5.1.0,而在SQL Server Compact 3.5 SP2的安装目录中(“C:\Program Files\Microsoft SQL Server Compact Edition\v3.5”和“C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop”),Windows资源管理器报告这两个程序集的版本都是3.5.8080.0。现在我知道3.5.0.0应该用于vanilla SQL Server Compact 3.5(即没有SP),3.5.1.0应该用于SP1,而不是SP2。我既没有安装vanilla也没有安装SP1,那么为什么它们会出现呢 此外,在Visual Studio 2008 SP1中,当我尝试从“C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices”添加System.Data.SqlServerCE程序集时“目录,Visual Studio 2008 SP1在“属性”面板中报告3.5.1.0的版本号。此版本号似乎是从GAC’ed程序集检索的,它甚至不应该用于.NETCompact Framework。“C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices”中的实际版本号应该也是3.5.8080.0 我知道可以使用私有部署,如中所述,但我仍然感到困扰的是,当我没有特别求助于私有部署时,VisualStudio似乎引用了错误的平台版本的程序集 也许我只是不明白Visual Studio如何与GAC协同工作。有人能启发我吗?有没有一种方法可以在不使用私有部署的情况下“修复”此问题?文件版本为3.5.8080.0 程序集版本为3.5.1.0 您可以通过在资源管理器中打开文件的属性并切换到“版本”选项卡来确认这一点(当然,您可以为桌面文件设置,这些文件本身也报告为3.5.8080.0,但实际上是3.5.1.0。您不能为设备文件设置,但同样的解释也适用)Visual studio 2008 VisualStudio2008SP1程序集引用混淆,visual-studio-2008,version,gac,.net-assembly,sql-server-ce-3.5,Visual Studio 2008,Version,Gac,.net Assembly,Sql Server Ce 3.5,我正在Windows XP SP3上使用Visual Studio 2008 SP1为Windows CE 6开发一些.NET Compact Framework 3.5 SP1解决方案 我想在解决方案中使用SQL Server Compact 3.5 SP2,但是我注意到Visual Studio处理程序集引用的方式非常奇怪 我已经安装了“适用于Windows桌面的SQL Server Compact 3.5 SP2”(sCeruntime_x86-ENU.msi)和“适用于Windows M
VisualStudio在引用程序集时根本不与GAC交互(事实上,请参见相关问题)我明白了。我一直想知道文件版本和程序集版本之间有什么区别,因为我最近注意到DLL在“版本”选项卡中有两个版本,并且在我看到它们的几次(在其他DLL中)中,它们的值总是相同的。在你指出这些值是不同的之后,我在谷歌上搜索了一下。现在我明白了这两个属性之间的区别。我还发现GAC中的程序集没有文件版本。相反,他们有一个产品版本。对于System.Data.SqlServerCE,它恰好与文件版本具有相同的值。