Не удалось скопировать файл Microsoft.SqlServer.Types
После установки пакета Microsoft.SqlServer.Types(Spatial) я получаю ошибки сборки
- Ошибка 14 Не удалось скопировать "myapp\packages\Microsoft.SqlServer.Types.11.0.1\nativeBinaries\x86\msvcr100.dll" в "bin\SqlServerTypes\x86\msvcr100.dll". Превышено количество попыток 10. Не удалось.
- Ошибка 26 Не удалось скопировать "myapp\packages\Microsoft.SqlServer.Types.11.0.1\nativeBinaries\x86\SqlServerSpatial110.dll" в "bin\SqlServerTypes\x86\SqlServerSpatial110.dll". Превышено количество попыток 10. Не удалось.
- Ошибка 15 Не удалось скопировать файл "myapp\Microsoft.SqlServer.Types.11.0.1\nativeBinaries\x86\msvcr100.dll" в "bin\SqlServerTypes\x86\msvcr100.dll". Процесс не может получить доступ к файлу 'bin\SqlServerTypes\x86\msvcr100.dll', потому что он используется другим процессом.
- Ошибка 27 Не удалось скопировать файл "myapp\packages\Microsoft.SqlServer.Types.11.0.1\nativeBinaries\x86\SqlServerSpatial110.dll" в "bin\SqlServerTypes\x86\SqlServerSpatial110.dll". Процесс не может получить доступ к файлу 'bin\SqlServerTypes\x86\SqlServerSpatial110.dll', потому что он используется другим процессом.
После расследования я обнаружил, что мой рабочий процесс iis блокирует эти файлы. После перезапуска iis успешное создание приложения, но не появляется erros.
Как я могу решить эту проблему???
Ответы
Ответ 1
Я нашел для этого естественное решение.
Я просто останавливаю IIS до начала компиляции, а затем запускаю IIS после компиляции.
В своем проекте перейдите в меню "Свойства" > "События сборки":
Ответ 2
Похоже, что при удалении пакета NuGet ссылки в csproj не удаляются. Кроме того, я нашел некоторые ссылки на эти DLL в файле, связанном с Git с именем ms-persist.xml, но это, вероятно, не проблема. Поэтому, после удаления всего этого, работа сработала.
Ответ 3
Я столкнулся с этой проблемой и натолкнулся на достойное решение. В моем случае у меня было два проекта, которые запускались и запускались внутри IIS Express каждый раз, когда я начинал отлаживать VS 2013, хотя я выбрал только один проект запуска внутри проводника решений. Я заметил, что каждый раз, когда я останавливал отладку, только одно из моих приложений внутри IIS Express прекращалось, а другое продолжало работать. Последующая команда clean/build покажет ошибку, с которой вы сталкиваетесь для приложения, которое не завершилось. Оказывается, вы можете выбрать несколько проектов запуска в VS, которые расскажут IIS Express о запуске обоих из них при запуске отладки (что было странно уже в моем случае, хотя я выбрал только один проект запуска), а также расскажу о IIS Express для завершения обоих приложений при остановке отладки. Когда все приложения внутри IIS Express завершены, я могу успешно очистить/построить, не получив эту ошибку. Инструкции о том, как установить несколько проектов запуска, можно найти здесь: http://msdn.microsoft.com/en-us/library/ms165413.aspx
Ответ 4
Вы можете перезагрузить и перезапустить пул приложений, который заблокировал указанные файлы как часть процесса развертывания. Перезапуск пула приложений разблокирует файлы, и вы можете их перезаписать.
Для локального развертывания вы можете указать событие предварительной сборки (DefaultAppPool
- это имя пула приложений):
c:\Windows\system32\inetsrv\appcmd.exe recycle apppool "DefaultAppPool"
Для автоматического развертывания (например, с сервера сборки) вы можете указать msdeploy
перезапустить пул приложений в составе процесса развертывания:
msdeploy.exe -verb:sync -source:recycleApp="Default Web Site/myapp" -dest:auto
Для получения дополнительной информации см. веб-сайт Deploy recycleApp .