microsoft / microsoft/MSBuildCache
Microsoft.CodeAnalysis build error
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 64
- Forks
- 24
- Ø Merge
- 1 T. 14 Std.
- Gemergte PRs (30 T.)
- 2
Beschreibung
When testing out MSBuildCache on my solution, I am getting a build error related to Microsoft.CodeAnalysis 3.8.00, from one of our projects that itself references a difference Microsoft.CodeAnalysis version:
https://github.com/microsoft/MSBuildCache/blob/main/Directory.Packages.props#L29 references <PackageVersion Include="Microsoft.CodeAnalysis" Version="3.8.0" /> so it appears they are clashing?
NB I'm using dotnet build here - is it unsupported and I need a VS Install?
dotnet build -c Release
C:\Users\<snip>\.nuget\packages\microsoft.msbuildcache.sharedcompilation\0.1.318-preview\build\Microsoft.MSBuildCache.Shared
Compilation.targets(9,5): error MSB4018: The "ResolveFileAccesses" task failed unexpectedly. [C:\src\Foo\src\CodeAnalysis\src
\Foo.CodeAnalysis\Foo.CodeAnalysis.csproj]
C:\Users\<snip>\.nuget\packages\microsoft.msbuildcache.sharedcompilation\0.1.318-preview\build\Microsoft.MSBuildCache.Shared
Compilation.targets(9,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.CodeAnalysis, V
ersion=3.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified. [C:\src\Foo\src
\CodeAnalysis\src\Foo.CodeAnalysis\Foo.CodeAnalysis.csproj]
Foo.CodeAnalysis.csproj
...
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
<PackageReference Include="NETStandard.Library" />
</ItemGroup>
...
Directory.Build.props
<ItemGroup Condition="'$(MSBuildProjectName)'!='Foo.CodeAnalysis' AND '$(MSBuildProjectName)'!='Foo.CodeAnalysis.Test'">
<ProjectReference Include="$(MSBuildThisFileDirectory)\CodeAnalysis\src\Foo.CodeAnalysis\Foo.CodeAnalysis.csproj"
PrivateAssets="all"
ReferenceOutputAssembly="false"
OutputItemType="Analyzer"/>
</ItemGroup>
Directory.Packages.props
...
<ItemGroup >
<GlobalPackageReference Include="Microsoft.MSBuildCache.SharedCompilation" Version="0.1.318-preview" />
<GlobalPackageReference Include="Microsoft.MSBuildCache.Local" Version="0.1.318-preview" />
</ItemGroup>
...
<PackageVersion Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="3.3.4" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Features" Version="4.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Analyzer.Testing.NUnit" Version="1.1.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeFix.Testing.NUnit" Version="1.1.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeFix.Testing" Version="1.1.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.Features" Version="4.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Scripting.Common" Version="4.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.0.1" />
...
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere den Fehler mit dotnet build -c Release und untersuche anschließend Directory.Packages.props, Directory.Build.props und Foo.CodeAnalysis.csproj zusammen mit den im Fehler genannten Microsoft.MSBuildCache.SharedCompilation-Targets. Verfolge die Versionsabweichung von Microsoft.CodeAnalysis und überprüfe, dass das betroffene Projekt erfolgreich erstellt wird, ohne dass der ResolveFileAccesses-Assembly-Ladefehler auftritt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- build-system, tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100