2015-06-10 8 views
0

Я использую Visual Studio 2015 (Pre), Framework 4.5.2WCF Data Services, WindowsAzure.Storage и Microsoft.Data.OData версия кошмар

У меня есть на следующие структуры проекта

StorageProject

  • NuGet пакет Microsoft.WidowsAzure.Storage установлен
  • Этот пакет NuGet имеет (среди прочих) зависимостей от Microsoft.Data.OData, которым также installe d

AnotherProject

  • Имеет Refernce на StorageProject
  • ли не любой пакет NuGet или другую ссылку, (кроме ссылок по умолчанию на рамках)

здесь является список упаковок, установленных в StorageProject

  • WindowsAzure.Storage 4.3.0
  • Microsoft.WindowsAzure.ConfigurationManager 3.1.0
  • System.Spatial 4.3.0
  • Microsoft.Data.Edm 5.6.4
  • Microsoft.Data.OData 5.6.4
  • Microsoft.Data.Services.Client 5.6.4

это все зависимости от WindowsAzure.Storage, последних версий.

Нет другой версии этих пакетов, установленных в любом месте решения.

Я остановлюсь на Microsoft.Data.OData, но та же проблема возникает с Microsoft.Data.Edm и Microsoft.Data.Services.Client 5.6.4

При построении StorageProject, правильная версия этих DLL (5.6.4) заканчивается в бункерном папке проекта ,

Но при строительстве AnotherProject, папка bin содержит версию 5.6. dll.

Теперь я прошел весь день, пытаясь выяснить, откуда взялись эти DLL.

В GAC есть версия 5.0.0.0, которую я не могу удалить. (gacutil дает что-то используется).

Я сделал поиск файлов на C: \, чтобы найти, что единственное место, где находится эта версия dll (рядом с папкой bin моего проекта), находится в C:\Program Files (x86)\Microsoft WCF Data Services\5.6.2. Если я удалю (переместлю) эту папку, мой проект будет «нормально», и все будет в порядке.Фактически, в этом случае OData является не в папке с корзиной вообще. И, насколько мне известно, все в порядке.

Теперь реальный вопрос (ы):

  • Почему это версия от Microsoft WCF Data Services, который заканчивается в бункере, а не версия фактически установлен в ссылочном проекте?

  • Откуда: Microsoft WCF Data Services? Я не помню, чтобы установить его вообще, возможно, он поставляется с версией на Visual Studio? (У меня установлены 2012, 2013 и 2015 годы)

  • Могу ли я удалить его? Я не вижу его в панели управления Windows.

ответ

1

• Почему это версия Microsoft WCF Data Services, которая попадает в корзину, а не версию, фактически установленную в проекте, на который делается ссылка?

Это может быть связано с тем, что клиент хранения не зависит от конкретной версии Client Service Data. Поскольку Specific Version имеет значение false, GAC будет искать сначала во время компиляции, любая версия будет считаться «приемлемой», и никакая другая версия не будет экспортирована.

• Откуда берутся службы передачи данных Microsoft WCF? Я не помню, чтобы установить его вообще, возможно, он поставляется с версией на Visual Studio? (У меня есть 2012, 2013 и 2015 установлен)

Это может быть установлен из-за множества причин. Это также содержит Azure SDK. Поэтому, если вы когда-либо устанавливали Azure SDK, он мог бы прийти с этим.

• Могу ли я удалить его? Я не вижу его в панели управления Windows.

Похоже, что это возможно только после удаления пакета MSI, который установил сборку с помощью Add/Remove Programs. Для этого вам нужно будет снова выяснить, какая установка привела к этой сборке, и проверить, нужно ли это или нет.

+0

Спасибо! Есть ли способ обойти GAC во время компиляции? – Johnny5

 Смежные вопросы

  • Нет связанных вопросов^_^