c# - 如何让Visual Studio Online上的Builder还原所有NuGet包?

标签 c# tfs msbuild visual-studio-2015 azure-devops

我在 Visual Studio 2015 中有一个使用多个 NuGet 包的解决方案。当我在 Visual Studio 2015 中构建时,包被正确恢复并且构建成功。但是,当我将同一个项目推送到 Visual Studio Online 时,即使我选中了“还原 NuGet 包”,构建也会失败,因为 MSBuild 找不到引用的二进制文件。

我查看了构建日志,发现我的包都已恢复。为什么即使包已恢复,在构建过程中也找不到引用的二进制文件?

最佳答案

我发现问题不在 NuGet 包还原,而是提示路径在我的 .csproj 文件中的写入方式。要解决此问题,请使用 $(SolutionDir) 变量将提示路径更改为指向解决方案目录。

例如,NuGet 恢复提取了 Microsoft.WindowsAzure.Storage.dll 二进制文件,但在项目的构建中找不到它。要解决此问题,我必须打开 .csproj,找到对 dll 的引用,然后将路径从

更改为

..\packages\WindowsAzure.Storage.6.1.0\lib\net40\Microsoft.WindowsAzure.Storage.dll

-- 到--

$(SolutionDir)\packages\WindowsAzure.Storage.6.1.0\lib\net40\Microsoft.WindowsAzure.Storage.dll

通过使用 $(SolutionDir) 变量,Visual Studio Team Services 能够找到我引用的 dll 并正确构建我的项目。

关于c# - 如何让Visual Studio Online上的Builder还原所有NuGet包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34256383/

相关文章:

c# - 尝试从 Oracle 加密函数读取 DES3 加密值

azure - 从 TFS 部署时如何为 Azure 云服务设置不同的连接字符串

tfs - 程序集版本是否可以随每个 TFS 2010 版本自动更新?

asp.net - 在为 ASP.net 构建期间缩小内联 javascript?

c# - 是否可以从使用 dotnet build 创建的 .NET 程序集中删除完整路径?

c# - 强制继承者从其 CTOR (C#) 初始化基的字段

c# - .NET Core DI 中的异步提供程序

C# 从另一个类中获取文本框值

visual-studio - TFS 中的撤消/重做冲突解决操作

powershell - 从 MSBuild Exec 任务运行 powershell 脚本时出现异常