Visual Studio Online(2015版)中缺少软件包导致构建错误

9
当我在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:\ 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.我不确定如何强制将所有相关文件推送到存储库以供构建代理获取(根据我的经验,它是自动完成的)。
构建步骤中的设置如下。
- 解决方案:**\*.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个回答

24

当nuget包被检入版本控制时,通常会出现这个问题。请在版本控制中删除packages文件夹,并确保“packages.config”文件已检入版本控制。然后排队进行新的构建。


是的,经过数小时的尝试和一些帮助,我解决了这个问题。事实上,我发现如果在目录packages中检查所有内容,它也可以工作!完全省略它,只检查文件packages.config也可以。 (当然,正确的方法可能是根本不检查它们 - 第一种选择。)发生的情况是我已经存储了nupkg文件但没有其他文件,这破坏了它!这就是为什么我的VS建议包含/排除... - Konrad Viltersten
您可能还想将软件包路径添加到gitignore文件中。 - Shaswat Rungta

3

原来是因为NuGet包被提交到仓库中,导致一切出现问题。从仓库中删除project\project\packages目录解决了所有构建问题,因为NuGet会在构建时自动获取这些包。


0

我清空了构建中的“Packages”文件夹,这样问题就解决了。


0

我更新了软件包的最新版本,问题得到解决


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接