4

以为我会尝试并充分利用我的visualstudio.com试用会员资格。我使用一些项目创建了一个解决方案,将其推送到Microsoft git源代码控制提供程序,配置构建定义并尝试在项目服务器上构建它。但是它一直没有告诉我:VisualStudio.com(Visual Studio团队服务)在nuget软件包依赖关系上构建失败

类型或命名空间名称“起订量”无法找到(你 缺少using指令或程序集引用?)

我知道这意味着生成服务器无法找到Moq.dll库。我已经使用NuGet安装了它,但配置了我的.gitignore以使包文件夹不受源代码管理。我还为解决方案启用了NuGet软件包恢复功能,并将nuget.exe,nuget.targets和nuget.config(.nuget文件夹中的所有文件)与其他所有项目文件一起推送。

现在我确定我可以让构建工作,如果我也推动包文件夹,但我想保持nuget包文件夹脱离源代码管理。所以我想知道,这可能吗? visualstudio.com文档说,构建服务器安装了visual studio 2013,因此我假设nuget包恢复将工作以下载缺少的dll,以便可以通过MSBuild解析它们。这是正确的吗?或者在visualstudio.com上使用自动CI构建,你是否需要将你的软件包放在源代码控制之下?

根据日志文件,nuget包恢复下载了该包。是什么赋予了?

项目 “C:\一个\ SRC \ MySln.sln”(1)正在构建 “C:\一个\ SRC \测试\ MySln.ProjA.UnitTests \ MySln.ProjA.UnitTests.csproj” (3)在节点1上(默认目标)。 RestorePackages:
“C:\ a \ src.nuget \ NuGet.exe”install “C:\ a \ src \ Tests \ MySln.ProjA.UnitTests \ packages.config”-source“” - NonInteractive -RequireConsent - solutionDir“C:\ a \ src \”恢复NuGet包...为防止NuGet在构建过程中下载包,请打开Visual Studio选项对话框,点击包 管理器节点并取消选中“允许NuGet下载缺失的包” 。
packages.config中列出的所有软件包已安装。 PrepareForBuild:创建目录“obj \ Debug \”。 ResolveAssemblyReferences:主要参考“Moq”。 C:\ Program Files (x86)\ MSBuild \ 12.0 \ bin \ amd64 \ Microsoft.Common.CurrentVersion.targets(1635.5): 警告MSB3245:无法解析此引用。找不到 组件“Moq”。检查以确保程序集存在于磁盘上。如果 此引用是您的代码所必需的,则可能会收到编译 错误。 [C:\ A \ SRC \测试\ MySln.ProjA.UnitTests \ MySln.ProjA.UnitTests.csproj]

这条线也是在生成日志文件,低于上述:

考虑到“.. \ packages \ Moq.4.1.1311.0615 \ lib \ net40 \ Moq.dll”,但它不存在。

回答

2

我自己想出了这一个。原来我在将测试项目移动到测试子文件夹之前添加了nuget软件包。该解决方案仍然建立在我的LM上,可能是因为依赖关系已经复制到bin/Debug中。重新安装Nuget软件包后,该解决方案构建在vs.com上。

3

我有这个相同的错误,但它发生在我们的生成服务器上。我通过NuGet添加了Moq,签入了该项目,一切都很顺利。然后我把项目移到了TFS中的一个新文件夹中,而构建服务器似乎找不到Moq。它在当地建设很好。我最终通过确保将所有更改都签入到源代码管理中,然后删除我的本地源代码目录来解决问题。我得到最新的,我的测试项目意识到它需要Moq的新副本。我责备TFS /源安全或什么Visual Studio集成模块是什么在某些时候不添加到源控制。

+0

好吧,删除本地文件夹和获取最新的把戏我在LM错误,这是一个很好的提示 – bresleveloper

+0

上面,删除本地解决方案文件夹与nuget包文件夹,并试图建立时得到最新,并成功建立后检查,3-4次,并一次又一次修复引用错误,它终于奏效。 – bresleveloper

相关问题