Нежелательный SQLite, вставленный в\bin

Я использую Visual Studio 2010 и использую веб-развертывание для продвижения сайта .Net MVC в определенных средах. Я установил Elmah, и он отлично поработал в моей среде DEV, но когда я нажал TEST, у меня появились исключения, потому что SQLite не был хорошим форматом.

Я не использую SQLite в Elmah или иначе, о котором я знаю. Я удалил все видимые ссылки на SQLite, и я удалил .dll из всех каталогов bin. Но он все равно вставлен в каждую сборку. Я понимаю, что проблема с исключениями заключается в том, что SQLite не может быть создан для CPU Any, а мои среды варьируются от x86 до x64. Но я бы предпочел, чтобы SQLite даже не присутствовал.

С тех пор я удалил Elmah, и SQLite все еще вставлен в каталог \bin. Теперь я снова установил Elmah и вручную удалю SQLite.dll из \bin после каждой сборки. Как я могу определить, что заставляет SQLite вставляться в мой \bin после каждой сборки?

Ответы

Ответ 1

Если вы не используете SQLite, вам нужно просто удалить его из исходного местоположения, откуда вы импортировали ссылку. Чтобы развернуть это, допустим, что вы загрузили и распаковали ELMAH на путь C:\ELMAH на вашем локальном диске. Когда вы добавили ссылку на ELMAH, вы, вероятно, указали на одну из версий платформы под C:\ELMAH\bin, например C:\ELMAH\bin\net-2.0\Release. Из подкаталогов C:\ELMAH\bin удалите все другие нежелательные сборки и файлы, кроме Elmah.dll, Elmah.pdb и Elmah.xml. Строго говоря, вам даже не нужны последние два, но они тем не менее рекомендуются. После того, как вы это сделали, вы можете добавить ссылку на Elmah.dll в свой проект в Visual Studio, и ни одна из зависимостей не будет втянута в каталог вашего приложения bin. Возможно, вам придется удалить каталог bin и перестроить проект, чтобы избавиться от устаревшей копии System.Data.SQLite.dll из предыдущей ссылки. ELMAH будет продолжать работать нормально без System.Data.SQLite.dll, если вы не используете Elmah.SQLiteErrorLog в качестве хранилища журналов ошибок.

Как и в других предложениях, вам не нужно удалять ссылки на SQLite из источников ELMAH и делать частные сборки.

Ответ 2

Я думаю, Visual Studio обнаружит, что SQLite требуется Elmah и скопируйте его, если он найдет его. Чтобы достичь той же цели, я удалил все материалы SQLite из исходного кода Elmah и перестроил его. Это совсем безболезненно...

Ответ 3

Используйте текстовый редактор с поддержкой "find-in-files" для поиска всех ваших файлов проекта для "sqlite". Что-то должно ссылаться на него.

Ответ 4

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

Просто добавьте это в свой проектный файл своего веб-приложения в предпочтительный элемент PropertyGroup:

<ExcludeFilesFromDeployment>bin\System.Data.SQLite.dll</ExcludeFilesFromDeployment>