Это сложная концепция в названии, поэтому простите меня, если она не полностью отражает идею.
Возможно, я сумасшедший, но я только что заметил это поведение:
- Создание решения Visual Studio
- Создание проекта библиотеки DLL (я использую C # ... не знаю, совпадает ли поведение с другим проектом DLL для конкретного языка).
- Создание веб-клиента A (я использовал проект MVC 3)
- Ссылка на библиотеку из нового веб-клиента A
- Создание веб-клиента B (я использовал проект ASP.NET)
- Ссылка на библиотеку из нового веб-клиента. B
- Построение решения
- Подождите немного (хотя бы минуту, чтобы разница во времени была очевидной)
- Откройте два окна Windows Explorer: одно в корзину в веб-клиенте A, а другое в корзину в веб-клиенте B. Вы должны увидеть двоичные файлы для проекта клиента, а также для проекта библиотеки (при условии, что «Скопировать локальный» для ссылок проекта являетсяуниверсальный дефолт)
- Build только проект библиотеки .
В моей системе DLL библиотеки выглядит как push (или взаимно pull ) в папки bin клиента.Это должно быть видно по разнице временных меток, если вы ждете на шаге 8. Опять же, возможно, я сумасшедший, но я знаю, что делал этот сценарий раньше и никогда не видел такого поведения.
Проблема возникла из-за того, что я работал над решением с таким типом организации и создавал два веб-приложения по отдельности, а не целое решение.Когда я собирал веб-приложение A, оно работало нормально, но веб-приложение B жаловалось на ошибку «FileNotFoundException: не удалось загрузить файл или сборку».И затем наоборот.
Итак, на вопрос:
Это нормальное поведение (и я либо сумасшедший, либо я ошибаюсь из-за того, что был в этом сценарии раньше)?
Если не нормально, есть ли настройка, которую я могу использовать, чтобы библиотека DLL могла попасть в клиент только тогда, когда клиент будет собран?