【发布时间】:2015-03-23 22:43:44
【问题描述】:
由于x86 应用程序无法看到QWinSta.exe(FWIW Any CPU 也看不到它),我不得不将解决方案的平台从x86 更改为x64 时才发现这一点。切换后,一切都变得混乱,我的十几个实用程序库和基类项目找不到它们的引用。快速切换回来并重建一切都会再次正确(但当然不会给我我需要的x64)。
到目前为止,为了安全起见,我一直在构建 x86 的所有内容。所以……显然是时候付钱给吹笛者了。
发生的情况是,我在这些支持项目中的所有 NuGet 包引用都以某种方式更改为现在指向项目的 bin 文件夹中的程序集位置,而不是它们最初开始的包文件夹。
例如,我有一个名为 Extensions 的项目,它提供了一组方便的扩展方法,这些方法是我长期积累起来的。我在几个不同的解决方案中使用这个项目。它的包引用之一曾经是:
<SolutionDir>\Packages\Quartz.2.3.1\lib\net40\Quartz.dll
现在:
<CommonLibrariesDir>\Extensions\bin\x86\Debug\Quartz.dll
这就是为什么当我切换到 x64 时一切都崩溃了——引用的程序集根本不存在。
我想更好地了解包管理器在这种情况下的内部运作,所以我可以修复它并更好地构建东西以避免它在未来,但恐怕我不知道在哪里开始。我一直在翻阅文档,不知道自己在寻找什么。
有一点可能值得注意:通常当我创建一个新的解决方案/项目并添加/引用一个包含 NuGet 包的现有项目时,系统会提示我“恢复丢失的包”,我会继续执行此操作.这可能与它有关吗?
【问题讨论】:
-
嗨 Jeff,来自 ClickOnceMore 的 Greg。为这种非正统的方式联系杰夫向大家道歉,我选择了我能找到的最安静的问题。 Jeff 我已经回复了您所有的电子邮件,但回复都以“TLS 协商失败”的形式返回。你有其他电子邮件我可以联系你吗?谢谢,格雷格
-
@GregJackman - 现在那是客户服务!当然很高兴我选择了 ClickOnceMore :-)
标签: .net visual-studio nuget nuget-package