Я использую Visual Studio 2008 SP1 в Windows XP SP3 для разработки решения .NET Compact Framework 3.5 SP1 для Windows CE 6.
Я хочу использовать SQL Server Compact 3.5 с пакетом обновления 2 (SP2) в своем решении, однако заметил нечто очень странное в том, как Visual Studio обрабатывает ссылки на сборки.
Я установил «SQL Server Compact 3.5 SP2 для Windows Desktop» (SSCERuntime_x86-ENU.msi) и «SQL Server Compact 3.5 SP2 для Windows Mobile» (SSCEDeviceRuntime-ENU .msi). Первый помещает две версии сборки System.Data.SqlServerCE и одну версию сборки System.Data.SqlServerCe.Entity в GAC Windows XP, тогда как последний, похоже, не помещает какую-либо сборку в Windows GAC от XP. Уже здесь это выглядит странно, потому что GAC сообщает о версиях двух сборок 3.5.1.0 и 3.5.0.0 для System.Data.SqlServerCE и 3.5.1.0 для System.Data.SqlServerCE.Entity, тогда как в установочных каталогах SQL Server Compact 3.5 с пакетом обновления 2 («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 < / em>, а не SP2. Я не устанавливал ни ваниль, ни SP1, так зачем они вообще есть?
Кроме того, в Visual Studio 2008 SP1, когда я пытаюсь добавить сборку System.Data.SqlServerCE из каталога «C: \ Program Files \ Microsoft SQL Server Compact Edition \ v3.5 \ Devices», 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. Может кто-нибудь просветить меня? Есть ли способ «исправить» это, не прибегая к частному развертыванию?