Не мог скопировать файл reference.dll в bin/reference.dll. Процесс не может получить доступ к файлу reference.dll, потому что он используется другим процессом

Если Вы не хотите дубликаты в Collection, необходимо рассмотреть, почему Вы используете Collection, который позволяет дубликаты. Самый легкий способ удалить повторенные элементы состоит в том, чтобы добавить содержание к Set (который не позволит дубликаты), и затем добавьте Set назад к ArrayList:

Set<String> set = new HashSet<>(yourList);
yourList.clear();
yourList.addAll(set);

, Конечно, это уничтожает упорядочивание элементов в ArrayList.

32
задан Bill the Lizard 22 August 2011 в 12:39
поделиться

10 ответов

Проблема в том, что в web.config кто-то добавил:

hostingEnvironment shadowCopyBinAssemblies="false"

После того, как это закомментировали, все начало строиться нормально. Какой кошмар !!

18
ответ дан 27 November 2019 в 20:25
поделиться

В Visual Studio была определенная ошибка. 2008, который был исправлен в SP1, что может быть вашей проблемой. Это происходит, когда вы ссылаетесь на встроенный файл JavaScript, и вызывает проблему, которую вы видите. Подробнее см. здесь .

0
ответ дан 27 November 2019 в 20:25
поделиться

Блокировки файлов - это всего лишь часть работы с Visual Studio. Нет никаких отличных способов обойти эту проблему.

0
ответ дан 27 November 2019 в 20:25
поделиться

Вы можете скачать отличную программу SysInternals Handle . Это расскажет вам, какие процессы блокируют соответствующие файлы.

Если это внешняя программа (например, антивирусный сканер / индексатор), это должно помочь. Если он просто укажет Visual Studio (devenv.exe) как виновник, то от этого будет меньше пользы!

0
ответ дан 27 November 2019 в 20:25
поделиться

Я предполагаю, что вы уже знаете, что VS2008 блокирует файлы. Вы можете попробовать запустить MSBuild из командной строки и посмотреть, исчезнут ли проблемы. К сожалению, Visual Studio может блокировать файлы, когда этого не следует делать, в некоторых труднопредсказуемых сценариях.

0
ответ дан 27 November 2019 в 20:25
поделиться

Используйте ProcessExplorer , чтобы узнать, какой процесс открыл файл , и перейти оттуда.

Если процесс в настоящее время использует эту DLL, его нельзя удалить и переписать. Вам придется убить или иным образом остановить процесс, использующий эти библиотеки DLL во время компиляции.

13
ответ дан 27 November 2019 в 20:25
поделиться

Hi I'm facing the same issue for a little while. It's very annoying.

I have an easier yet not so efficient solution for the problem. Cleaning the project or solution solves the problem.

1
ответ дан 27 November 2019 в 20:25
поделиться

У меня сработало следующее событие перед сборкой:

if exist "$(TargetPath).locked.bak" del "$(TargetPath).locked.bak"
if exist "$(TargetPath).bak" del "$(TargetPath).bak"
if exist "$(TargetPath).locked" ren "$(TargetPath).locked" "$(TargetFileName).locked.bak"
if exist "$(TargetPath)" ren "$(TargetPath)" "$(TargetFileName).bak"

В моем случае я заметил, что 2 файла создаются и не могут быть удалены. Однако вы можете переименовать их (и они все еще будут использоваться, если вы попытаетесь их удалить).В следующей сборке переименованные файлы больше не используются (блокировка снята), и их можно удалить, что и делает приведенный выше сценарий, после чего он может безопасно переименовывать новые заблокированные файлы, чтобы не было проблем с созданием сборка вывода.

Другие события перед сборкой, опубликованные здесь и в других местах, мне не очень помогли (они работали только для одной дополнительной сборки или только для нескольких, прежде чем проблема возникла снова). Итак, теперь я использую тот, который опубликован выше, для целей отладки.

10
ответ дан 27 November 2019 в 20:25
поделиться

Я бился над этим вопросом ГОДАМИ!

Пробовали ли вы добавить это в событие PREBUILD?

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"

Смотрите здесь для получения дополнительной информации: http://nayyeri.net/file-lock-issue-in-visual-studio-when-building-a-project

Вот еще одна тема, где можно попробовать...

http://social.msdn.microsoft.com/forums/en-US/Vsexpressinstall/thread/5b71eb06-5047-483d-8fd3-b75c102d41e9/?prof=required

12
ответ дан 27 November 2019 в 20:25
поделиться

У меня была похожая проблема. Решением для меня было посмотреть на файл *.csproj и под ним я нашел недостающий файл, а ниже был правильный файл, так что я просто удалил строки и все сразу заработало

0
ответ дан 27 November 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: