Я создал приложение winforms (C #), которое будет принимать список путей к файлам и копировать эти файлы (из другого решения VS) в новое место (в папке, которую пользователь указывает) в той же структуре каталогов в настоящее время они существуют в локальной файловой системе.
Я использую класс Path, Directory и т. Д., И все прекрасно работает ... за исключением случаев, когда он достигает пути к файлу, который указывает на DLL.
Библиотеки DLL, которые я пытаюсь скопировать, являются частью другого решения, и это решение в настоящее время не открыто.
Я попытался перезагрузить компьютер, чтобы удостовериться, что Visual Studio каким-то образом не подключается к этой DLL даже после закрытия решения.
Рассматриваемая DLL может быть скопирована обычным способом вручную (то есть ярлыком копирования и вставки).
За исключением создания командного файла в программе и запуска xcopy по этому пути к DLL, я не знаю, как заставить это работать.
Из того, что я нашел в поиске Google (что не так уж много в этой конкретной ситуации), File.Copy () должен работать ..
Любая помощь была бы замечательной, даже если это ссылка на дубликат вопроса, который я, возможно, просмотрел.
Спасибо!
-Сообщение об ошибке: процесс не может получить доступ к файлу [вставьте путь к файлу], потому что он используется другим процессом (путь также определенно правильный)
-Просто скачал и попытался найти имя DLL с помощью Process Explorer. Я также запустил аналогичный exe-файл из командной строки, но безрезультатно. Он утверждает, что ничто не использует его. Вот почему я совершенно сбит с толку этим. Кроме того, я только что проверил разрешения, и все выглядит великолепно (т. Е. Полный доступ, действующие разрешения владельца)
-Он не обрабатывает открытые файлы. Он в основном строит правильные пути src и dest и выполняет File.Copy () для них. Как мне поступить с открытыми файлами? Я уверен, что смог бы выяснить, было ли оно открыто, но что бы я делал, если бы оно было открыто?