Это исключение com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
возникает, если соединение с базой данных простаивает в течение длительного времени.
Это незанятое соединение возвращает true на connection.isClosed();
, но если мы попытаемся выполнить инструкцию, тогда оно запустит это исключение, поэтому я предлагаю пойти с пулом базы данных.
Является ли эта фраза ключевой? «Однако все dll и exe собираются , если я хочу запустить решение »
Visual Studio всегда будет пытаться собрать все при запуске одного проекта, даже если этот проект не зависит от всего. Однако этот выбор можно изменить. Перейдите в Инструменты | Параметры | Проекты и решения | Построить и запустить и установите флажок «Создавать только запускаемые проекты и зависимости при запуске». Затем, когда вы нажмете F5, VS соберет только ваш стартовый проект и библиотеки DLL, от которых он зависит.
Я не уверен, существует ли способ избежать зависимостей от того, чтобы быть созданным. Можно найти некоторую информацию здесь как установка copylocal ко лжи и помещению dlls в общем каталоге.
сборка решения для Visual Studio Оптимизации - куда поместить файлы DLL?
Можно снять флажок с опцией сборки для указанных проектов в Вашем Конфигурация решения :
(источник: microsoft.com )
Вы банка может создать Ваши собственные конфигурации решения для создания определенных конфигураций проекта...
(источник: microsoft.com )
Я не думаю, там находится далеко, чтобы Вы сделали это из поля в VS. Вам нужно это дополнение http://workspacewhiz.com/
, Это не свободно, но можно оценить его перед покупкой.
Да, исключите неизменяющиеся биты из решения. Я говорю это с протестом, поскольку можно скомпилировать способом, где изменение в номере сборки для измененного lib может заставить не созданные части повреждаться. Это не должно иметь место, пока Вы не повреждаете интерфейс, но это довольно распространено, потому что большинство devs не понимает интерфейс в мире.NET. Это прибывает из не необходимости записать IDL. :-)
Что касается X projcts в решении, нет, Вы не можете мешать им создать, поскольку система видит, что зависимость изменилась.
BTW, необходимо посмотреть проект и фигуру, почему проектом UI (принимают это, является UI), ссылается на ту же библиотеку как все остальное. Хорошая Модель Зависимости покажет класс (классы), который должен вспыхнуться как объекты данных или объекты области (я сделал предположение, что общая зависимость является своего рода объектом данных или объектом области, конечно, но это довольно распространено). Если бы общая зависимость не является доменом/объектом данных, то я заново продумал бы свою архитектуру в большинстве случаев. В целом необходимо смочь создать путь от UI до данных без общих зависимостей кроме неповеденческих объектов.
У нас действительно была эта проблема в моем текущем проекте, в нашем сценарии даже запуск модульных тестов (без каких-либо изменений кода) вызывал перекомпиляция. Проверьте «Platform» конфигурации вашей сборки.
Если вы используете «Any CPU», то по какой-то причине он перестраивает все проекты независимо от изменений. Попробуйте использовать сборки, специфичные для процессора, например, x86 или x64 (используйте платформу, специфичную для архитектуры вашего компьютера). Работал для нас на сборках x86.
(источник: episerver.com )
У нас была похожая проблема на работе. В событиях после сборки мы вручную встраивали манифесты в выходные данные в каталоге bin. Visual Studio копировала ссылки на проекты из каталога obj (который не был изменен). Разница во временных метках вызвала ненужные перестройки.
Если ваши события после сборки изменяют выходные данные проекта, то либо измените выходные данные в bin и obj dir, либо скопируйте измененные выходные данные в bin bin поверх тех, что в obj dir.
Теперь, после того, как я скажу это, какая-то головка винта придет и вступит в противоречие со мной, но нет способа сделать то, что вы хочу сделать из Visual Studio. Есть способ сделать это за пределами VS, но сначала у меня есть вопрос:
С какой стати вы хотите это сделать? Возможно, вы пытаетесь сохранить циклы ЦП или сэкономить время компиляции, но если вы сделаете то, что предлагаете, вы внезапно окажетесь в прекрасном положении, чтобы выстрелить себе в ногу. Если у вас есть библиотека 1, которая зависит от библиотеки 2, и только изменения библиотеки 2, вы можете подумать, что вы можете создать только измененную библиотеку, но на днях вы собираетесь внести изменения в библиотеку 2, которая сломается библиотека 1, и без сборки библиотеки 2 вы не поймаете ее в компиляции. Так что по моему скромному мнению, НЕ ДЕЛАЙТЕ ЭТОГО.
Причина, по которой это не сработает в VS2005 и 2008, заключается в том, что VS использует MSBuild. MSBuild работает с файлами проекта и проверяет ссылки проекта и сначала строит все ссылочные проекты, если их источник изменился, перед сборкой целевого проекта. Вы можете проверить это самостоятельно, запустив MSBuild из командной строки для одного проекта, который не изменился, но с измененным ссылочным проектом. Пример:
msbuild ClassLibrary4.csproj
где ClassLibrary4 не изменилась, но ссылается на ClassLibrary5, который изменился. MSBuild сначала соберет lib 5, прежде чем соберет 4, даже если вы не упомянули 5.
Единственный способ обойти все эти ошибки - использовать компилятор напрямую, а не через MSBuild. Уродливый, уродливый, но это все. В основном вы будете вынуждены повторно реализовать MSBuild в той или иной форме, чтобы делать то, что вы хотите.
Это того не стоит.
Посетите следующий сайт , чтобы получить более подробную информацию о том, когда создается проект, а также о различиях между сборкой и повторной сборкой.
Не уверен, что это отличный способ справиться с этим, но в прошлом, если бы у меня был один или два проекта, которые постоянно перестраивались, и предполагая, что я не буду в них работать, я бы повернул процесс сборки отключен для них.
Щелкните правой кнопкой мыши sln, выберите диспетчер конфигурации и снимите флажки. Не идеально, но работает, когда Visual Studio не работает.
У меня тоже была эта проблема, и я заметил эти предупреждающие сообщения при сборке на Windows 7 x64, VS2008 SP1:
cl: Предупреждение командной строки D9038 : / ZI не поддерживается на этой платформе; включение / Zi вместо
cl: Предупреждение командной строки D9007: '/ Gm' требует '/ Zi'; опция игнорируется
Я изменил свойства своего проекта на:
C / C ++ -> Общие -> Формат отладочной информации = / Zi
C / C ++ -> Генерация кода -> Включить минимальную сборку = Нет
После при восстановлении я переключил их обратно, и зависимости снова работают нормально. Но до этого никакая очистка, перестройка или полное удаление выходного каталога не помогли бы это исправить.
Я просто «исправил» ту же проблему в моем проекте VS. Visual Studio всегда перестраивала, даже если ничего не меняла. Мое решение: в одном CS-файле была метка времени будущего (2015 год, это была моя ошибка). Я открыл файл, сохранил его, и моя проблема решена !!!