web-dev-qa-db-de.com

fehler MSB3027: "C:\pagefile.sys" konnte nicht in "bin\roslyn\pagefile.sys" kopiert werden. Wiederholungsversuch von 10 überschritten. Fehlgeschlagen

Jedes Mal, wenn ich diesen Fehler mit VS 2013 erhalte

Konnte "C:\pagefile.sys" nicht in "bin\roslyn\pagefile.sys" ..__ kopieren. Wiederholungsversuch von 10 überschritten. Fehlgeschlagen. Datei kann nicht kopiert werden "C:\pagefile.sys" bis "bin\roslyn\pagefile.sys". Der Prozess kann nicht auf die Datei zugreifen 

Bitte hilf mir.

19
Pramod Raut

Wie in diese Antwort aus Pramods Kommentar angegeben, liegt das Problem im Nuget-Paket Microsoft.CodeDom.Providers.DotNetCompilerPlatform, insbesondere beim Upgrade von Version 1.0.0 auf 1.0.1.

Das Downgrade mit Visual Studio führte jedoch zu weiteren Buildfehlern. Um das Problem zu lösen, musste ich meine Dateien csproj und packages.config manuell bearbeiten und alle Verweise auf Microsoft.Net.Compilers und Microsoft.CodeDom.Providers.DotNetCompilerPlatform entfernen.

Konkret bedeutete dies:

  • Entfernen der relevanten <Import Project="...-Abschnitte für alle Versionen beider Bibliotheken (in der Regel am Anfang des Csproj)
  • Entfernen der <Reference Include="...-Abschnitte für beide Versionen beider Bibliotheken
  • Entfernen der <Error Condition="!Exists(...-Abschnitte für beide Versionen beider Bibliotheken aus dem EnsureNuGetPackageBuildImports-Zielabschnitt
  • Alle Microsoft.CodeDom.Providers.DotNetCompilerPlatform- und Microsoft.Net.Compilers-Pakete aus der packages.config entfernen.

Ich konnte dann die Projekt-Nuget-Pakete in VS verwalten und (in Reihenfolge):

  • Fügen Sie Microsoft.Net.Compilers Version 1.2.2 hinzu. 
  • Fügen Sie Microsoft.CodeDom.Providers.DotNetCompilerPlatform Version 1.0.1 hinzu. 

Dies beseitigte den Erstellungsfehler der Auslagerungsdatei und den Laufzeitfehler, der mich dazu aufforderte, ein Upgrade durchzuführen.

36
T S Taylor

Ich entferne : 

- Microsoft.CodeDom.Providers.DotNetCompilerPlatform

- Microsoft.Net.Compilers

von nuget package Manager, da ich es nicht benutze.

Dann ist alles in Ordnung.

8
toha

Ich habe eine andere Lösung für diesen Fehler gefunden ... In meinem Fall hatte ich ein Projekt innerhalb meiner Lösung verschoben (ich habe es in einem Unterordner abgelegt). Meine Verweise auf Pakete (in% solutionfolder%/packages) in der Projektdatei waren defekt und ich habe sie manuell behoben.

Es gibt jedoch zwei Ergänzungsimporte, die ich vergessen habe:

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

Ich habe zuerst das erste von ..\packages auf ....\packages (faul wie ich bin) aktualisiert. Das Erstellen des Projekts danach hat mir den Fehler pagefile.sys gegeben. 

Das Aktualisieren des zweiten Imports (gleiche Änderung: ..\packages to ....\packages) hat es für mich behoben.

3
wvhooijdonk

Entfernen Sie diese beiden Zeilen aus der .csproj-Datei:

<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')" />
1
osman

Nicht viel, aber ich würde vorschlagen, Ihr Problem mit SysInternals Process Monitor aufzuzeichnen.

Sobald Sie procmon ausgeführt haben, möchten Sie Ihr Problem mit VS2013 aufnehmen (oder mit anderen Worten verfolgen). Wenn Sie mit der Aufnahme fertig sind, möchten Sie die Ergebnisse nach Prozess filtern (in Ihrem Fall devenv.exe). Drücken Sie Ctrl-T, um die Prozessstruktur zu öffnen, und suchen Sie nach devenv.exe

Wählen Sie es aus und klicken Sie auf die Schaltfläche "Teilbaum einschließen". Schließen Sie das Process Tree-Fenster und wählen Sie Tools -> Count Occurrences aus dem oberen Menü. Setzen Sie das Dropdown-Feld "Column" auf "Result" und drücken Sie die Count-Taste. Die Ausgabe wird eine Sammlung von Ergebnissen mit ihren jeweiligen Zählwerten sein. Sie können normalerweise eine gute Vorstellung davon bekommen, was los ist, wenn Sie diese Ergebnisse betrachten. Wenn Sie beispielsweise eine Vielzahl von Ergebnissen mit ACCESS DENIED oder FILE LOCKED WITH ONLY READERS sehen, hängt das Problem höchstwahrscheinlich mit Berechtigungen zusammen.

0
Bertholt