Нежелательный SQLite вставлен в \ bin - PullRequest
13 голосов
/ 12 мая 2010

Я использую 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 после каждой сборки?

Ответы [ 4 ]

14 голосов
/ 14 мая 2010

Если вы не используете 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 голосов
/ 12 мая 2010

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

0 голосов
/ 10 сентября 2014

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

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

<ExcludeFilesFromDeployment>bin\System.Data.SQLite.dll</ExcludeFilesFromDeployment>
0 голосов
/ 12 мая 2010

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

...