2016-07-14 1 views
0

Мой проект пытается ссылаться на версию DLL, которую я никогда не использовал. При попытке получить доступ к моей базе данных я получаю ошибку:Проект, пытающийся получить доступ к версии DLL, я никогда не использовал

A first chance exception of type 'System.IO.FileLoadException' occurred in Windows Service Manager.exe

Additional information: Could not load file or assembly 'System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.

Теперь это имеет смысл, он не должен быть в состоянии найти его, так как он никогда не существовал.

Единственная версия упоминается в моем проекте 4.0.8902.1, и в app.config ссылки проекта является:

<dependentAssembly> 
    <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" /> 
    <bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1" /> 
    </dependentAssembly> 

Это единственный вариант ссылки в любом месте проекта.

Я бы хотел знать, как это исправить, но кто-нибудь знает, как можно, чтобы проект начал произвольно ссылаться на версии DLL, которые никогда не существовали и которые не упоминаются нигде в проекте? Единственное, что изменилось с того момента, когда оно работает правильно, а теперь - это то, что я прекратил работу над этим проектом в течение нескольких часов и снова открыл его.

Edit:

Во время сборки я вижу:

Consider app.config remapping of assembly "System.Data.SqlServerCe, Culture=neutral, PublicKeyToken=89845dcd8080cc91" from Version "3.5.1.0" [] to Version "4.0.0.1" [C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Private\System.Data.SqlServerCe.dll] to solve conflict and get rid of warning.

который не обязательно полезно, поскольку нет app.config, который ссылается на 3.5.1.0. Я проверил каждый app.config в решении и даже просто искал текст 3.5.1.0, и его просто не существует ... Я не знаю, как это исправить.

Следующее, что я могу придумать, - это искать весь мой жесткий диск для строки «3.5.1.0» ... Поэтому я попробую это.

+1

Возможно, ссылка на одну из ваших ссылок/зависимостей – ErikEJ

+0

Учитывая, что ничего не изменилось в проекте, и эта ошибка не была раньше, я действительно не знаю, как это могло бы произойти само по себе или как я могу ее остановить. – x540

+0

У меня также есть отдельный проект, который использует ту же версию SQL CE, и он работает отлично. Но я не могу ничего сделать, чтобы другой проект не пытался открыть версию, которая не существует. – x540

ответ

0

Ну я до сих пор не знаю, что случилось, но я сделал следующее, и это, кажется, остановилось:

1) убирали каждый проект в растворе

2) Закрыть Visual Studio

3) Удаляется все .suo файлы из каталога решения

4) Установите AutoGenerateBindingRedirects в True в файле .csproj

5) Открыл VS, перестроил решение, и он работает.

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