Путаница в сборке Visual Studio 2008 SP1 - PullRequest
0 голосов
/ 29 сентября 2011

Я использую 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 с пакетом обновления 2 (SP2) для Windows Рабочий стол » (SSCERuntime_x86-ENU.msi) и «SQL Server Compact 3.5 с пакетом обновления 2 (SP2) для Windows Mobile » (SSCEDeviceRuntime- ENU.msi). Первая помещает две версии сборки System.Data.SqlServerCE и одну версию сборки System.Data.SqlServerCe.Entity в GAC в Windows XP, а последняя, ​​похоже, не помещает какую-либо сборку в Windows XP. GAC. Здесь уже это выглядит странно, потому что 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 Explorer сообщает об обеих сборках быть версии 3.5.8080.0. Теперь я знаю, что 3.5.0.0 предполагается для vanilla SQL Server Compact 3.5 (то есть без SP ), а 3.5.1.0 предполагается для SP1 не SP2. Я не устанавливал ни ваниль, ни SP1, так почему они вообще там?

Более того, в Visual Studio 2008 SP1 при попытке добавить сборку System.Data.SqlServerCE из «C: \ Program Files \ Microsoft SQL Server Compact Edition \ v3.5 \ Устройства » Visual Studio 2008 с пакетом обновления 1 (SP1) сообщает номер версии 3.5.1.0 на панели свойств. Этот номер версии, похоже, получен из сборки GAC, чего не должно быть даже для .NET Compact Framework . Реальный номер версии в «C: \ Program Files \ Microsoft SQL Server Compact Edition \ v3.5 \ Устройства » должен быть 3.5.8080.0, опять же.

Я знаю, что можно использовать частное развертывание, как описано в http://msdn.microsoft.com/en-us/library/gg213826.aspx,, но я все еще обеспокоен тем фактом, что Visual Studio вообще ссылается на неверную платформу-версию сборки, когда я специально не прибегайте к частному развертыванию.

Может быть, я просто не понимаю, как Visual Studio работает в сочетании с GAC. Может ли кто-нибудь просветить меня? Есть ли способ «исправить» это, не прибегая к частному развертыванию?

1 Ответ

1 голос
/ 29 сентября 2011

Версия файла составляет 3.5.8080.0.

Версия сборки - 3.5.1.0.

Вы можете подтвердить это, открыв свойства файла в Проводнике и перейдя на вкладку «Версия» (ну, вы можете использовать файлы Desktop, которые также сообщают о себе как 3.5.8080.0, но на самом деле 3.5.1.0 Вы не можете использовать файлы Devices, но применимо то же самое объяснение)


Visual Studio вообще не взаимодействует с GAC, когда речь идет о ссылках на сборки (на самом деле см. Связанный вопрос Почему вкладка .NET в диалоговом окне «Добавить ссылку» в Visual Studio не отображает список содержимое GAC? )

...