Как заставить Visual Studio запускать файлы сборки (зависимости) из корзины? - PullRequest
0 голосов
/ 14 июля 2010

У меня есть решение, состоящее из нескольких проектов, которые имеют различные зависимости друг от друга.Когда я собираю проект / решение, он создает файлы сборки DLL в папке (папках) Project \ bin, как и должно быть.Но когда я запускаю программу, она копирует все в папку временных файлов и запускает ее оттуда:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files\ ApplicationName

Итак, теперь для каждого проекта есть одинаковые файлы DLL в папках bin и в папке временных файлов, откуда он запускается.Проблема в том, что у меня есть ссылки на каталог (и) bin, жестко запрограммированный в моих проектах в нескольких местах, поэтому, когда он смотрит туда, он возвращается с путаницей DLL и ошибками.Как я могу заставить Visual Studio запускать файлы сборки из исходного каталога (ов) bin вместо дублирования их и запуска из временных файлов?

PS Пожалуйста, не говорите мне, чтобы изменить жесткое кодирование - есть причины, по которым он должен оставаться таким, какой он есть;Вот почему я пытаюсь понять, как бежать из мусорного ведра.

Спасибо

1 Ответ

2 голосов
/ 14 июля 2010

Это называется теневым копированием и его особенностью дизайна. В частности, для сайтов ASP.NET он позволяет обновлять сборки домена без выгрузки домена приложения, что важно для сайтов ASP.NET, которые предназначены для непрерывной работы. Я действительно рекомендую оставить его включенным и переоценить требования к использованию каталога \ bin.

Если вы действительно хотите отключить теневое копирование, добавьте в файл web.config следующее:

<hostingEnvironment shadowCopyBinAssemblies="false" />

Побочным эффектом вышеуказанного является то, что ваши сборки в вашем каталоге \ bin будут заблокированы в течение всего времени жизни приложения.

...