2013-08-27 6 views
1

При запуске модульного тестирования для сериализации в файл XML, я получаю сообщение об ошибке:Visual Studio не удалось загрузить файл или сборку; возможно, кэшироваться?

Не удалось загрузить файл или сборку «Company.Fin.Bank.Common.XmlSerializers.dll, Version = 1.0. 0.0, Культура = нейтральная, PublicKeyToken = null или одна из ее зависимостей. Система не может найти указанный файл.

Я думаю Company.Fin.Bank.Common.XmlSerializers.dll может быть в кэше где-нибудь, но это невозможно, чтобы найти эту DLL, даже если я не нужна эта DLL. Я хочу удалить его. Но где я могу его найти? возможно ли это в кеше? если да, то как я могу очистить кеш от VS? Эта проблема для меня очень новая.

Какая странная часть заключается в том, что я использовал другой ноутбук (win 7) для запуска модульного тестирования, нет сообщения об ошибке, которое я получил - он работал. но когда я использовал свой собственный ноутбук (выиграть 8), я продолжаю получать сообщение об ошибке. Понятия не имею почему.

Я надеюсь найти решение у вас. Ваша помощь означает много. Благодаря!!!

+0

Кэш вы имеете в виду GAC? Если это так, посмотрите на сборку C: \ Windows \ assembly или C: \ Windows \ Microsoft.NET \, если вы используете .Net 4.0 или выше. –

+0

Если вы расширяете папку «Ссылки» вашего приложения, есть ли там сборка с желтым треугольником? Это означает, что он не может ее разрешить. Скорее всего, у другого ноутбука есть эта DLL, а у вас нет. Найдите его, скопируйте и добавьте в качестве ссылки для разрешения. Ключ находится в сообщении об ошибке :) –

+0

Возможно, в вашем проекте есть другая библиотека, в которой есть .dll как зависимость? – squillman

ответ

0

, даже если я не нужна эта DLL

Visual Studio, как правило, удалить ненужные библиотеки DLL. Обычно это вызвано зависимостями (которые сложнее отслеживать).

Я хочу его удалить.

Проверьте ссылки проекта в Обозревателе решений. Если какой-либо из них имеет желтый треугольник, это означает, что они не могут быть найдены (проект все еще может компилироваться и запускаться, если вы фактически не используете эту ссылку).

Возможно ли это в кеше?

Как указал Дэниел Келли C:\Windows\assembly и C:\Windows\Microsoft.NET\assembly, находится глобальный кэш сборок. Если он отсутствует, проверьте путь подсказки ссылки (он появится в свойствах).

Удачи в поиске вашей ссылки, имейте в виду, что в большинстве случаев вам нужна не только фактическая DLL, но и все использованные ею ссылки. Также декомпилятор, такой как DotPeek, может быть полезен, если вам нужен более осторожный способ поиска ссылок.

3

что сборка dynamically генерируется рамках (XMLSerializer)

В реализации .Net, то XmlSerializer генерирует временный узел для сериализации/десериализации классы (по производительности причинам).

Также это может быть normalbehavior - это прекращает работу приложения?

+0

+1. Связанные вопросы также имеют способы генерации такого типа сборки (если по какой-либо причине исключение должно быть исправлено - то есть невозможность динамического создания сборки из-за некоторых разрешений на временные файлы) –

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