Build Visual Studio Online(2015版)中缺少包的生成错误

Build Visual Studio Online(2015版)中缺少包的生成错误,build,msbuild,visual-studio-2015,continuous-integration,azure-devops,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) 更准确地说,这就是所描述的问题 无法从程序集C:\a\1\s\packages\Microsoft.Net.Compilers.1.0.0\build..\tools\Microsoft.build.Tasks.CodeAna

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

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

更准确地说,这就是所描述的问题

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

因此,很明显,我有一些本地放置的文件,使编译工作在站点上(即我的机器),但这些文件不是使用签入部署的。我还没有在我的项目中手动添加任何DLL或类似的东西。所有这些都是基于源代码的,或者是通过包管理器获得的

这带来了以下问题

  • 我不知道这些文件是什么(VisualStudioOnline中的错误消息没有透露这些信息,我无法在本地复制)
  • 我不知道如何强制将所有相关文件推送到存储库,以便建筑代理获取(根据我的经验,这是自动完成的)
  • 构建步骤中的设置如下所示

    • 解决方案:***.sln
    • MsBuild参数:/p:DeployOnBuild=true/p:WebPublishMethod=Package/p:PackageAsSingleFile=true/p:SkipInValidConfiguration=true/p:PackageLocation=“$(build.artifactstagingdirectory)\\”
    • 平台:
    • 配置:
    • 清洁:关闭
    • 还原NuGet包:已选中
    • Visual Studio版本:Visual Studio 2015
    • MsBuild体系结构:MsBuild x86
    • 记录项目详细信息:已选中

    此问题通常在将nuget软件包签入版本控制时发生。删除版本控制中的packages文件夹,并确保已将“packages.config”文件签入到版本控制中。然后对一个新的构建进行排队。

    结果是NuGet包被提交到了存储库,并破坏了所有内容。从repo中删除project\project\packages目录解决了自NuGet在生成时自动获取包以来的所有生成问题。

    我已更新到包的最新版本,问题已解决

    我已清除生成中的包文件夹,并已为我修复它

    是的,经过无数个小时的尝试,我从100个不同的角度解决了这个问题。事实上,我发现,如果一个人检查目录包及其所有内容,它也可以工作!完全忽略它,只签入packages.config文件也可以。(当然,正确的方法可能是根本不签入这些文件——第一种选择。)发生的事情是我存放了nupkg文件,而不是其他文件,这破坏了它!这就是为什么我的VS建议包含/排除…您可能还希望将包路径添加到gitignore文件