-->

Build errors of missing packages in Visual Studio

2020-08-26 04:08发布

问题:

I'm getting the following message when I trigger a build on check-in to Visual Studio Online. Locally it compiles and deploys just fine.

packages\Microsoft.Net.Compilers.1.0.0\tools\Microsoft.CSharp.Core.targets (67, 5)

To be more precise, this is the problem being described.

The "Microsoft.CodeAnalysis.BuildTasks.Csc" task could not be loaded from the assembly C:\a\1\s\packages\Microsoft.Net.Compilers.1.0.0\build..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll. Could not load file or assembly 'file:///C:\a\1\s\packages\Microsoft.Net.Compilers.1.0.0\tools\Microsoft.Build.Tasks.CodeAnalysis.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

So, evidently, I have some locally placed files making the compilation work on site (i.e. my machine) but those aren't deployed using check-in. I haven't put in any DLLs or such manually into my project. Everything that's there is either source code based or obtained with the package manager.

That poses the following issues.

  1. I don't know which exact files those are (error message in Visual Studio Online doesn't disclose that information and I can't reproduce it locally).
  2. I'm not sure how to forcingly push all the relevant files to the repository for the building agent to fetch (according ot my experience, it's done automagically).

The settings in the build step are as follows.

  • Solution: **\*.sln
  • MsBuild Arguments: /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
  • Platform:
  • Configuration:
  • Clean: off
  • Restore NuGet Packages: checked
  • Visual Studio Version: Visual Studio 2015
  • MsBuild Architecture: MSBuild x86
  • Record Project Details: checked

回答1:

This issue usually occurs when the nuget packages are checked in to Version Control. Delete the packages folder in Version Control, and make sure the "packages.config" file is checked in to Version Control. Then queue a new build.



回答2:

It turns out that NuGet packages were committed to the repository and breaking everything. Deleting the project\project\packages directory from the repo solved all build problems since NuGet fetches the packages automatically on build.



回答3:

I updated to last version of package and the issue solved



回答4:

I have cleared the Packages folder in the build and that fixed it for me.