gpt4 book ai didi

.net - 更改为发布构建配置时,NuGet 引用无效

转载 作者:行者123 更新时间:2023-12-04 14:15:06 24 4
gpt4 key购买 nike

我在 NuGet(最新)和 VS2012 上遇到了一个相当奇怪的问题。我有一个启用了 NuGet 包管理的多项目解决方案,只要我使用 Debug|AnyCPU 配置,它就可以正确编译和应用程序运行。一旦我切换到 Release|AnyCPU,似乎所有 NuGet 程序集引用都消失了,应用程序显然无法编译。奇怪的是,我可以在 NuGet 管理器 UI 中看到所有正确项目的所有引用。

你有没有遇到过类似的问题,你知道如何解决吗?

重建没有帮助。在设置调试配置时设置了 NuGet 引用。

最佳答案

再一次,我在回答我自己的问题......

关键是,我正在改变解决方案的结构并移动一些项目。这意味着,您会在每个项目的 .csproj 文件中获得无效的相对路径。没关系,只要你不改变结构的深度,我就是这样做的。

对于 原因不明 ,调试构建在无效路径下运行得很好(可能程序集是通过其他方式收集的,因为我手动删除了 bin 和 obj 文件夹并清除了解决方案等......)。但是对于发布版本,它尝试从(错误引用的)packages/目录中获取程序集。

NuGet 进程的任何部分都没有发现/报告此问题,并且在所有 UI 控制台中,甚至在 NuGet PowerShell 控制台本身中,一切似乎都很好。

解决方案是显而易见的。编辑受影响项目的 .csproj 文件(我实际上是通过过滤警告和发现引导到这个问题的,只有一些程序集受到影响,而那些程序集来自主解决方案目录之外)并更改程序集引用的路径以正确的 NuGet 包文件夹。

旁注:这是 NuGet(可能还有 VS)引用处理的问题。它试图使用一些相对路径,而不是添加一些变量,如 ${SOLUTION_ROOT} 或 ${NUGET_ROOT} 或 ${PACKAGES_FOLDER}。如果通过变量替换来完成,则可以在多个解决方案中使用相同的项目,而不会破坏 NuGet 包配置。至少我还没有找到跨多个解决方案共享同一个项目文件夹的方法。

关于.net - 更改为发布构建配置时,NuGet 引用无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com