簡體   English   中英

錯誤 MSB3027:無法將“C:\\pagefile.sys”復制到“bin\\roslyn\\pagefile.sys”。 超過 10 次重試次數。失敗

[英]Error MSB3027: Could not copy “C:\pagefile.sys” to “bin\roslyn\pagefile.sys”. Exceeded retry count of 10. Failed

我一直在使用 VS 2013 遇到此錯誤:

無法將“C:\\pagefile.sys”復制到“bin\\roslyn\\pagefile.sys”。 超過 10 次重試次數。失敗。 無法將文件“C:\\pagefile.sys”復制到“bin\\roslyn\\pagefile.sys”。 進程無法訪問文件

請幫幫我。

正如Pramod 評論中的這個答案所示,問題源於Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget 包,特別是從版本1.0.0升級到1.0.1

然而,對我來說,使用 Visual Studio 降級會導致進一步的構建錯誤。 為了解決這個問題,我必須手動編輯我的 csproj 和 packages.config 文件,刪除對Microsoft.Net.CompilersMicrosoft.CodeDom.Providers.DotNetCompilerPlatform 的所有引用。

具體來說,這意味着:

  • 刪除兩個庫的所有版本的相關<Import Project="...部分(通常在 csproj 的開頭)
  • 刪除兩個庫的兩個版本的<Reference Include="...部分
  • EnsureNuGetPackageBuildImports目標部分中EnsureNuGetPackageBuildImports兩個庫的兩個版本的<Error Condition="!Exists(...部分
  • 從packages.config 中刪除所有Microsoft.CodeDom.Providers.DotNetCompilerPlatformMicrosoft.Net.Compilers包。

然后我能夠在 VS 和(按順序)管理項目 nuget 包:

  • 添加Microsoft.Net.Compilers版本1.2.2
  • 添加Microsoft.CodeDom.Providers.DotNetCompilerPlatform版本1.0.1

這解決了頁面文件構建錯誤,以及促使我首先嘗試升級的運行時錯誤。

我從 nuget 包管理器中刪除了這些包,因為我不使用它們:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  • Microsoft.Net.編譯器

現在一切正常。

我找到了針對此錯誤的不同解決方案。 在我的情況下,我一直在我的解決方案中移動一個項目(我把它放在一個子文件夾中)。 我在項目文件中對包(位於%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..\\..\\packages )為我解決了這個問題。

使用 Clean Solution/Rebuild Solution 步驟為我解決了這個問題。

從 .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')" />

沒什么可做的,但我建議使用SysInternals Process Monitor記錄您的問題

一旦您運行了procmon ,您就想用VS2013記錄(或跟蹤,換句話說)您的問題。 完成錄制后,您需要按進程過濾結果(在您的情況下為devenv.exe ),因此請按Ctrl-T打開進程樹,並找到devenv.exe

選擇它,然后單擊“包含子樹”按鈕。 關閉 Process Tree 窗口,然后從頂部菜單中選擇Tools -> Count Occurrences 將“列”下拉框設置為“結果”,然后按“計數”按鈕。 輸出將是結果及其各自計數的集合。 通過查看這些結果,您通常可以很好地了解正在發生的事情。 例如,如果您看到很多涉及ACCESS DENIEDFILE LOCKED WITH ONLY READERS ,那么您的問題很可能與權限有關。

我刪除了 .csproj 文件中的這一行

<Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />

並為我工作。

我用的是Visual Studio 2019,不知道為什么我的項目突然出現這個錯誤。

只需使用Sysinternals Process Explorer搜索具有pagefile.sys句柄的進程並殺死它。

我一直在使用 VS 2013 遇到此錯誤:

無法將“C:\\pagefile.sys”復制到“bin\\roslyn\\pagefile.sys”。 超過 10 次重試次數。失敗。 無法將文件“C:\\pagefile.sys”復制到“bin\\roslyn\\pagefile.sys”。 進程無法訪問文件

請幫我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM