Visual studio 2013 将同一软件包安装到解决方案中的多个F#项目时出现NuGet问题

Visual studio 2013 将同一软件包安装到解决方案中的多个F#项目时出现NuGet问题,visual-studio-2013,f#,nuget,Visual Studio 2013,F#,Nuget,以下是解决方案布局: FSharpNuGetTest(sln) FirstService(F#3.1控制台项目,.NET 4.5/4.5.2) 第二服务(F#3.1控制台项目,.NET 4.5/4.5.2) 为了便于讨论,假设我想将TopShelf从NuGet安装到这两个服务。不管库是什么,错误都会发生,但看起来我实际上可以可靠地复制它 NuGet软件包管理器版本:2.8.60318.734 在VS2013.4社区版中打开NuGet package manager控制台后: PM>

以下是解决方案布局:

  • FSharpNuGetTest(sln)
    • FirstService(F#3.1控制台项目,.NET 4.5/4.5.2)
    • 第二服务(F#3.1控制台项目,.NET 4.5/4.5.2)
为了便于讨论,假设我想将TopShelf从NuGet安装到这两个服务。不管库是什么,错误都会发生,但看起来我实际上可以可靠地复制它

NuGet软件包管理器版本:2.8.60318.734

在VS2013.4社区版中打开NuGet package manager控制台后:

PM> Install-Package Topshelf -ProjectName FirstService
Installing 'Topshelf 3.1.4'.
(... snip - license stuff ...)
Successfully installed 'Topshelf 3.1.4'.
Adding 'Topshelf 3.1.4' to FirstService.
Successfully added 'Topshelf 3.1.4' to FirstService.
太好了。现在,让我们对另一项服务进行同样的尝试:

PM> Install-Package Topshelf -ProjectName SecondService
'Topshelf 3.1.4' already installed.
Adding 'Topshelf 3.1.4' to SecondService.
No exact match found for removing reference 'Topshelf'. Trying case-insensitive search...
Failed to find match for removing reference 'Topshelf'.
Install-Package : Failed to add reference to 'Topshelf'.
At line:1 char:16
+ Install-Package <<<<  Topshelf
    + CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
PM>安装软件包Topshelf-ProjectName第二服务
“Topshelf 3.1.4”已安装。
将“Topshelf 3.1.4”添加到SecondService。
未找到删除引用“Topshelf”的精确匹配项。正在尝试不区分大小写的搜索。。。
未能找到删除引用“Topshelf”的匹配项。
安装包:未能添加对“Topshelf”的引用。
第1行字符:16

+安装软件包这是一个半答案,但它来了

正如我在编辑中指出的,暴力强迫似乎有效。如果第一次不起作用,只需发送垃圾邮件
Install-Package
就可以在第二次(或第三次,或第四次…)使用


奇怪…

你考虑过帕克特吗?我不能说这个问题,但paket修复了nuget的许多其他问题。@FyodorSoikin还没有。我只是浏览了一下,但它看起来很有希望——但我必须将其纳入CI构建过程——特别是TeamCity。在这种情况下,与NuGet的紧密集成似乎是一大优势。我还得再研究一下。你是说它“修复了nuget的许多其他问题”,那么主要的“修复”是什么?两个立即浮现在脑海中的例子:项目和多平台目标之间的软件包版本冲突。FWIW,我刚刚尝试了Visual Studio Premium 2013和nuget 2.8.50926.663,但我无法重现这个问题。正如预期的那样,TopShelf已正确安装到这两个项目中。这可能是您的环境有问题。@MarkSeemann奇怪,我在两台不同的机器上(在使用VS2013 Pro时,以及在我的私人机器上使用上述设置时)都会遇到这种情况,我完全不知道为什么。。。可能是环境问题,但我不知道从哪里开始:)