Получить элементы из sitecore в TDS не удается
Когда я пытаюсь получить некоторые элементы из Sitecore в проекте TDS, я получаю эту ошибку:
"Элемент с тем же ключом уже добавлен. Ошибка связи со службой TDS. Дополнительные сведения см. В журнале исключений приложений на сервере Sitecore".
Странно то, что этот элемент в конечном итоге добавляется в проект TDS. Также я использую пользовательский поставщик данных.
Что я пробовал до сих пор:
- Создайте новый TDS proj, и при первом получении элементов проблем не возникнет, но если я удалю их, а затем решу получить их из SC, появится та же ошибка.
- Проверено, что предметы имеют только одну версию и язык
- Выключил "Генерацию кода"
- Может быть проблема в версиях и языках в DataProvider, но я проверил это, и это выглядит хорошо.
6 ответов
Проблема, с которой вы сталкиваетесь, может возникнуть, когда вы удалили элементы из проекта TDS, а затем снова синхронизировались. TDS хранит кэш ключей, добавленных в проект, и, кажется, не может удалить эти кэшированные ключи, если элементы удаляются из проекта Visual Studio, выбирая их и удаляя их в обозревателе решений.
Единственный способ обойти эту проблему - закрыть Visual Studio и перезагрузить компьютер.
TDS не поддерживает одноуровневые элементы с одинаковым именем, поэтому вы видите эту ошибку. Попробуйте переименовать дублированный именованный элемент и посмотрите, позволяет ли это синхронизировать.
Кэш TDS хранится в папке obj в каталоге проекта. Попробуйте удалить эту папку и перезапустить генерацию кода для TDS.
Да, перезапуск Visual Studio помог очистить кеш. Также убедитесь, что вы перезапустите VS в режиме администратора.
Я также столкнулся с этим пару недель назад - после небольшого расследования я понял ошибку An item with the same key has already been added
было на самом деле.net ошибка, выдаваемая TDS. Я не думаю (по крайней мере, в моем случае), что это как-то связано с конфликтом элементов TDS. Хотя я так и не узнал, в чем же заключается проблема - кажется, что отскок пула приложений помог.
Спасибо всем за вашу помощь! Как-то мне удалось исправить проект. Исходя из того, что я пробовал, если кто-то сталкивался с подобной проблемой, вы можете попробовать эти вещи:
- "плохое слияние" - это возможно при слиянии с дублирующимися полями, что приведет к той же проблеме.
- Убедитесь, что у вас нет предметов с одинаковыми именами на одном уровне (предметы с одинаковыми идентификаторами наверняка будут отображать ту же ошибку)
- Если вы используете пользовательский поставщик данных, убедитесь, что он не создает бесполезные версии элементов или добавляет бесполезные языки. Проверьте эту тему: Пользовательский поставщик данных Sitecore удваивает языковые версии?
- Как сказал Ричард, у TDS есть chache, поэтому перезапуск VS может помочь.
Надеюсь, это поможет!