0

我在 Windows XP SP3 上使用 Visual Studio 2008 SP1 为 Windows CE 6 开发一些 .NET Compact Framework 3.5 SP1 解决方案。

我想在我的解决方案中使用 SQL Server Compact 3.5 SP2,但是我注意到 Visual Studio 处理程序集引用的方式非常奇怪。

我已经安装了“SQL Server Compact 3.5 SP2 for Windows Desktop ”(SSCERuntime_x86-ENU.msi)和“SQL Server Compact 3.5 SP2 for Windows Mobile ”(SSCEDeviceRuntime-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 的程序集中检索到的,它甚至不应该用于 .NET Compact Framework。“C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\ Devices ”中的真实版本号应该是 3.5.8080.0。

我知道可以使用私有部署,如http://msdn.microsoft.com/en-us/library/gg213826.aspx中所述,但我仍然对 Visual Studio 似乎正在引用的事实感到困扰当我没有专门求助于私有部署时,程序集的平台版本完全错误。

也许我只是不明白 Visual Studio 如何与 GAC 结合使用。有人可以启发我吗?有没有办法在不诉诸私有部署的情况下“解决”这个问题?

4

1 回答 1

1

文件版本为3.5.8080.0 。

程序集版本是 3.5.1.0。

您可以通过在资源管理器中打开文件的属性并切换到“版本”选项卡来确认这一点(好吧,您可以将自己报告为 3.5.8080.0 的桌面文件,但实际上是 3.5.1.0。您可以't 用于设备文件,但同样的解释适用)


在引用程序集时,Visual Studio 根本不与 GAC 交互(实际上,请参阅相关问题Why does the .NET tab in the 'Add Reference' dialog in Visual Studio in the 'Add Reference' dialog not list the contents of GAC?

于 2011-09-29T06:41:56.480 回答