Нежелательный 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>