Ошибка MSB3027: не удалось скопировать "C:\pagefile.sys" в "bin\roslyn\pagefile.sys". Превышено число повторных попыток 10. Не удалось
Я последовательно получаю эту ошибку с VS 2013:
Не удалось скопировать "C:\pagefile.sys" в "bin\roslyn\pagefile.sys". Превышено число повторных попыток 10. Не удалось. Невозможно скопировать файл "C:\pagefile.sys" в "bin\roslyn\pagefile.sys". Процесс не может получить доступ к файлу
Пожалуйста, помогите мне.
Ответы
Ответ 1
Как указано в этом ответе от комментария Pramod, проблема связана с пакетом Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget, в частности, с версия 1.0.0 до 1.0.1.
Для меня, однако, переопределение с использованием Visual Studio вызвало дальнейшие ошибки сборки. Чтобы решить эту проблему, мне пришлось вручную редактировать файлы csproj и packages.config, удаляя все ссылки на Microsoft.Net.Compilers и Microsoft.CodeDom.Providers.DotNetCompilerPlatform.
В частности, это означало:
- Удаление соответствующих разделов
<Import Project="...
для всех версий обеих библиотек (обычно к началу csproj)
- Удаление разделов
<Reference Include="...
для обеих версий обеих библиотек
- Удаление разделов
<Error Condition="!Exists(...
для обеих версий обеих библиотек из раздела EnsureNuGetPackageBuildImports
- Удаление всех пакетов
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
и Microsoft.Net.Compilers
из файла packages.config.
Затем я смог управлять проектами пакетов nuget в VS и (по порядку):
- Добавить Microsoft.Net.Compilers версия 1.2.2
- Добавить Microsoft.CodeDom.Providers.DotNetCompilerPlatform версия 1.0.1
Это решило ошибку сборки pagefile и ошибку времени выполнения, которая побудила меня попробовать и обновить в первую очередь.
Ответ 2
Я удалил эти пакеты из диспетчера пакетов nuget, так как не использую их:
Теперь все работает.
Ответ 3
Я нашел другое решение этой ошибки. В моем случае я перемещался по проекту в моем решении (я поместил его в подпапку). Мои ссылки на пакеты (расположенные в %solutionfolder%/packages
) в файле проекта были повреждены, и я исправил их вручную.
Однако есть два дополнения импорта, которые я забыл:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
Я сначала обновил первый из ..\packages
к ..\..\packages
(ленивый как я). Построение проекта после этого дало мне ошибку pagefile.sys.
Обновление второго импорта (то же самое изменение: ..\packages
to ..\..\packages
) решило это для меня.
Ответ 4
Удалите эти две строки из файла .csproj:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
Ответ 5
Не так много, но я бы предложил записать вашу проблему, используя SysInternals Process Monitor
После запуска procmon
вы хотите записать (или трассировать, другими словами) свою проблему с помощью VS2013
. После того, как вы закончите запись, вы захотите отфильтровать результаты по процессу (в вашем случае devenv.exe
), поэтому нажмите Ctrl-T
, чтобы открыть Дерево процессов, и найдите devenv.exe
.
Выберите его, а затем нажмите кнопку "Включить субтитры". Закройте окно Дерево процессов и выберите Tools -> Count Occurrences
в верхнем меню. Установите раскрывающийся список столбцов в поле "Результат" и нажмите кнопку "Счет". Результатом будет сбор результатов вместе с их соответствующими подсчетами. Обычно вы можете получить представление о том, что происходит, глядя на эти результаты. Например, если вы видите много результатов с участием ACCESS DENIED
или FILE LOCKED WITH ONLY READERS
, то, скорее всего, ваша проблема связана с разрешениями.
Ответ 6
Использование шагов Clean Solution/Rebuild Solution решило эту проблему для меня.