![](/img/trans.png)
[英]Could not copy the file “C:\pagefile.sys” because it was not found
[英]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.Compilers和Microsoft.CodeDom.Providers.DotNetCompilerPlatform 的所有引用。
具體來說,這意味着:
<Import Project="...
部分(通常在 csproj 的開頭)<Reference Include="...
部分EnsureNuGetPackageBuildImports
目標部分中EnsureNuGetPackageBuildImports
兩個庫的兩個版本的<Error Condition="!Exists(...
部分Microsoft.CodeDom.Providers.DotNetCompilerPlatform
和Microsoft.Net.Compilers
包。然后我能夠在 VS 和(按順序)管理項目 nuget 包:
這解決了頁面文件構建錯誤,以及促使我首先嘗試升級的運行時錯誤。
我從 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 DENIED
或FILE 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.