这是解决方案的布局:
NuGet包管理器版本:2.8.60318.734
在打开VS2013.4社区版中的NuGet包管理器控制台后:
完美。现在让我们尝试使用另一个服务做同样的事情:
- FSharpNuGetTest(sln)
- FirstService(F# 3.1控制台项目,.NET 4.5 / 4.5.2)
- SecondService(F# 3.1控制台项目,.NET 4.5 / 4.5.2)
NuGet包管理器版本:2.8.60318.734
在打开VS2013.4社区版中的NuGet包管理器控制台后:
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
哎呀...
我再次遇到了这个问题,原因是:
- 尝试将XUnit/NUnit安装到解决方案中的多个F#测试项目中。
- 最近在尝试将Akka.FSharp安装到解决方案中的多个F#项目中时。
有什么办法可以解决吗...?
这只发生在多个F#项目中 - 从来没有在C#项目中出现过任何问题。
我的临时解决方法是从一个.fsproj
文件复制和粘贴引用。即使在此操作之后,Update-Package
也似乎可以正常工作。
但这并不能改变这是一个hack的事实,而不是解决方案管理应该工作的方式,特别是当需要重新安装时 - 然后您必须再次从一个.fsproj
(实际上获取所有内容的那个)复制并粘贴所有<Reference>
元素到其他所有位置,因为NuGet包安装会在后续项目上失败...
编辑
看起来这里可能需要一些蛮力 - 经过约4次尝试,软件包已安装到第二个服务应用程序中(?!)。 这毫无意义...
我只希望我不必在CI服务器上这样做。
Install-Package
,最终它会成功(?!)这真的很令人困惑,但没关系... - Patryk Ćwiek