Azure 持续部署在 Newtonsoft 上失败,而 VS 发布有效

Azure Continuous deployment fails on Newtonsoft while VS publishing works

我添加了一个需要 Newtonsoft.Json 版本 >= 9.0.1 的新包,而到目前为止我有 8.0.2。

该解决方案在 VS 上构建并运行良好。但是,当我推送分支时,Azure 上的持续部署构建失败。

The type or namespace name 'Newtonsoft' could not be found

程序集加载或解析没有任何错误。

但是,如果我从 Visual Studio 在 Azure 上发布,它会起作用。

我的 CD 构建有什么问题,我该如何修复?

该解决方案只有一个项目。

确保所有项目的 Newtonsoft.Json 版本相同。

检查 Newtonsoft.Json 配置文件中的 assemblyBinding 是否正确并且在所有项目中都相同

确保你 Enabled NuGet Package Restore

关于 uninstalling\reinstalling Newtonsoft 包以及检查 assemblyBindings 等的所有 SOF 问题都让我误入歧途。

我的构建服务器 (Azure Continuous Deployment) 将包加载到解决方案根目录下名为 packages 的文件夹中。但是,由于我的机器上有很多解决方案,所以我在其他地方只有一个包文件夹。为了让构建服务器工作,我在我的解决方案的根目录创建了一个连接包文件夹,链接到我机器的正确包文件夹。我忘记的是,当我添加新包时,Visual Studio 放置正确包文件夹的路径而不是连接点。

因此,为了修复我的服务器构建,我只需要编辑我的 csproj 文件以将新的(和像 Newtonsoft 一样更新的)包重定向到连接文件夹。