在Visual Studio Online中构建缺少包的错误(2015版)

时间:2016-01-15 10:25:11

标签: build msbuild visual-studio-2015 continuous-integration azure-devops

当我在登录Visual Studio Online时触发构建时,我收到以下消息。在本地,它可以编译和部署。

  

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

更确切地说,这是正在描述的问题。

  

" Microsoft.CodeAnalysis.BuildTasks.Csc"无法从程序集C:\ a \ 1 \ s \ packages \ Microsoft.Net.Compilers.1.0.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll加载任务。无法加载文件或程序集' file:/// C:\ a \ 1 \ s \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll'或其中一个依赖项。该系统找不到指定的文件。确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。

所以,显然,我有一些本地放置的文件使编译工作在网站(即我的机器),但那些没有使用签入部署。我没有手动将任何DLL或类似的东西放入我的项目中。那里的所有内容都是基于源代码或通过包管理器获得的。

这带来了以下问题。

  1. 我不知道那些确切的文件(Visual Studio Online中的错误消息并未公开该信息,我无法在本地重现)。
  2. 我不确定如何强制将所有相关文件推送到存储库以供构建代理程序获取(根据我的经验,它是自动完成的)。
  3. 构建步骤中的设置如下。

    • 解决方案: ** \ * .sln
    • MsBuild参数: / p:DeployOnBuild = true / p:WebPublishMethod = Package / p:PackageAsSingleFile = true / p:SkipInvalidConfigurations = true / p:PackageLocation =" $(build。 artifactstagingdirectory)\\"
    • 平台:
    • 配置:
    • 清洁:关闭
    • 恢复NuGet包:已选中
    • Visual Studio版本: Visual Studio 2015
    • MsBuild架构: MSBuild x86
    • 记录项目详细信息:已选中

4 个答案:

答案 0 :(得分:23)

当nuget包签入版本控制时,通常会发生此问题。删除Version Control中的packages文件夹,并确保将“packages.config”文件签入到Version Control中。然后排队新的构建。

答案 1 :(得分:3)

事实证明,NuGet包已经提交到存储库并破坏了所有内容。从repo中删除project \ project \ packages目录解决了所有构建问题,因为NuGet会在构建时自动获取包。

答案 2 :(得分:0)

我更新了最新版本的软件包并解决了问题

答案 3 :(得分:0)

我已经清除了构建中的Packages文件夹并为我修复了它。