Moq и Moq Contrib Версии
Я не могу найти версии moq и moq contrib, которые выровнены. Я, вероятно, просто Google-сбой.
Подробности:
Существует ли версия moq.contrib, которая работает с moq версией 4.0.10827, последняя из http://code.google.com/p/moq-contrib/downloads/list выдает мне ошибку:
CA0058: Ссылочная сборка "Moq, версия =4.0.812.4, культура = нейтральная, PublicKeyToken=69f491c39445e920" не найдена. Эта сборка требуется для анализа и на нее ссылались: ...
Или есть ресурс для загрузки Moq 4.0.812.4, так как http://code.google.com/p/moq/downloads/list имеет только 4.0.10827
Даже установка обоих из nuget не помогла.
Благодарю.
3 ответа
Похоже, у Moq Contrib появился новый дом: http://moqcontrib.codeplex.com/. Там нет загрузок и не слишком много информации о текущем статусе проекта.
По крайней мере, они знают об этой проблеме несовместимости: http://moqcontrib.codeplex.com/discussions/255319 но, похоже, с апреля прошлого года нет ни исправления, ни новой версии библиотеки.
Вы можете попытаться исправить зависимость и собрать библиотеку из исходного кода.
Или же
Я нашел этот пакет http://nuget.org/packages/Moq.Contrib.Indy
Независимая реализация проекта Moq.Contrib, с современными ссылками на Moq и Autofac
Я не пробовал, но, может быть, стоит попробовать...
Я исправил это следующим образом.
- Возьмите источник из
http://code.google.com/p/moq-contrib/downloads/detail?name=Moq.Contrib-0.2-src.zip
Затем измените целевой фреймворк на 4.0
Добавить moq 4.0 вместо существующего moq
Прокомментируйте методы "verify" и "VerifyAll". Там методы были виртуальными в 2.0 moq contrib
Переименуйте вызовы методов
MockFactory в MockRepository ExpectGet для SetupGet
В проекте есть ссылка на Autofac. Я не пытался изменить эту ссылку на последний автофак.
Вы можете настроить bindingRedirect
в app.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Moq" publicKeyToken="69f491c39445e920" culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0-4.2.1312.1622" newVersion="4.2.1312.1622" />
</dependentAssembly>
</assemblyBinding>
</runtime>
где 4.2.1312.1622
следует заменить на последнюю версию Moq.