以为我会尝试充分利用我的 visualstudio.com 试用会员资格。我用几个项目创建了一个解决方案,将其推送到 Microsoft git 源代码控制提供程序,配置了构建定义并尝试在项目服务器上构建它。但是它一直没有告诉我:
找不到类型或命名空间名称“Moq”(您是否缺少 using 指令或程序集引用?)
我知道这意味着构建服务器找不到 Moq.dll 库。我使用 NuGet 安装了它,但配置了我的 .gitignore 以使包文件夹不受源代码控制。我还为解决方案启用了 NuGet 包还原,并推送了 nuget.exe、nuget.targets 和 nuget.config(.nuget 文件夹中的所有 3 个文件)以及所有其他项目文件。
现在我确信如果我也推送包文件夹,我可以让构建工作,但我想让 nuget 包文件夹不受源代码控制。所以我想知道,这可能吗?visualstudio.com 文档说构建服务器安装了 Visual Studio 2013,因此我认为 nuget 包还原可以下载丢失的 dll,以便 MSBuild 可以解决它们。这是正确的吗?或者要在 visualstudio.com 上使用自动化 CI 构建,您是否需要将包置于源代码控制之下?
根据日志文件,nuget package restore 下载了包。是什么赋予了?
项目“C:\a\src\MySln.sln”(1)正在节点 1 上构建“C:\a\src\Tests\MySln.ProjA.UnitTests\MySln.ProjA.UnitTests.csproj”(3)(默认目标)。RestorePackages:
"C:\a\src.nuget\NuGet.exe" 安装 "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:主要参考“起订量”。C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1635,5):警告 MSB3245:无法解析此引用。找不到程序集“Moq”。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,您可能会遇到编译错误。[C:\a\src\Tests\MySln.ProjA.UnitTests\MySln.ProjA.UnitTests.csproj]
这一行也在构建日志文件中,在上面的下面:
考虑“..\packages\Moq.4.1.1311.0615\lib\net40\Moq.dll”,但它不存在。