У меня есть веб-сайт на основе MVC / C #. Один из используемых пакетов nuget - это оболочка для PDFium, не являющаяся .NET dll. PDFium dll включен как часть другого пакета nuget и является просто dll, который копируется в выходной каталог.
Проблема, с которой я столкнулся, заключается в том, что после того, как я использовал веб-сайт, dll PDFium (т.е. не .net, а не тот, который выполняет упаковку), кажется, загружается и затем блокируется IIS. Если я попытаюсь сделать сборку в Visual Studio, я получу сообщение об ошибке:
Невозможно скопировать файл [Полный путь к источнику]. Процесс не может получить доступ к файлу [путь назначения], поскольку он используется другим процессом.
Вторая строка в журнале ошибок сборки показывает нечто подобное и дополнительно подтверждает:
Файл заблокирован: «Рабочий процесс IIS (28776)»
Если я сделаю iisreset
, то это приведет к тому, что этот рабочий процесс будет убит, и, следовательно, может произойти копирование, но мне интересно, есть ли какой-нибудь лучший способ сделать это. Я думаю, что все остальные библиотеки DLL, включенные в пакеты nuget и тому подобное, копируются очень хорошо, поэтому, возможно, есть что-то более «правильное», что можно сделать, чтобы решить эту проблему, а не слегка тяжеловесный подход iisreset ...