NuGet/包恢复不能很好地与f#



我们有一个f#项目和c#项目的解决方案。两者都使用相同的NuGet包集,使用NuGet包还原来自动下载。令人沮丧的是,我们经常遇到f#项目无法构建的问题,迫使我们卸载然后重新安装所有包。在安装过程中,NuGet似乎没有正确编辑fsproj文件,因此给我们留下了重复的引用,或者版本错误的引用,从而阻止了构建。有人遇到过类似的问题吗/有人知道解决方案吗?

你遇到这个bug了吗?f# Project VS 2012:更新包移除HintPath

NuGet中还有一些其他已知的bug会影响f#项目。你可能想浏览一下CodePlex上的NuGet问题跟踪器,看看你的问题是否已经被报告了;如果没有,你应该一定要提交一个bug报告,让NuGet开发人员意识到这个问题。

NuGet Issue Tracker

我最近写了一篇关于这个问题以及如何复制它的博客文章。

http://mikehadlow.blogspot.co.uk/2013/06/nuget-install-is-broken-with-f.html

我已经按照要求复制了下面的开头部分:

当你尝试使用NuGet向f#项目添加包引用时,会出现一个非常严重的错误。当正在安装的程序集在GAC中也有一个版本,或者在输出目录中已经存在不同的版本时,它就会显示出来。

首先让我们在GAC中已经存在某个版本的程序集时重现这个问题。

用f#项目创建一个新的解决方案。

选择要从NuGet安装的程序集,该程序集也存在于您的计算机上的GAC中。出于讽刺的目的,我将选择NuGet。

它在我的GAC:

D:>gacutil -l | find "NuGet.Core"
NuGet.Core, Version=1.0.11220.104, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
NuGet.Core, Version=1.6.30117.9648, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL

您可以看到GAC中最高的版本是1.6.30117.9648

现在让我们安装NuGet。核心版本2.5.0来自官方NuGet源代码:

PM> Install-Package NuGet.Core -Version 2.5.0
Installing 'Nuget.Core 2.5.0'.
Successfully installed 'Nuget.Core 2.5.0'.
Adding 'Nuget.Core 2.5.0' to Mike.NuGetExperiments.FsProject.
Successfully added 'Nuget.Core 2.5.0' to Mike.NuGetExperiments.FsProject.

它正确创建了一个packages目录,下载了NuGet。并创建一个包。配置文件:

D:SourceMike.NuGetExperimentssrc>tree /F
D:.
│   Mike.NuGetExperiments.sln
│
├───Mike.NuGetExperiments.FsProject
│   │   Mike.NuGetExperiments.FsProject.fsproj
│   │   packages.config
│   │   Spike.fs
│   │
│   ├───bin
│   │   └───Debug
│   │
│   └───obj
│       └───Debug
│
└───packages
    │   repositories.config
    │
    └───Nuget.Core.2.5.0
        │   Nuget.Core.2.5.0.nupkg
        │   Nuget.Core.2.5.0.nuspec
        │
        └───lib
            └───net40-Client
                    NuGet.Core.dll

但是当我查看我的fsproj文件时,我看到它错误地引用了NuGet。核心版本(1.6.30117.9648)从GAC,没有提示路径指向下载包。

<Reference Include="NuGet.Core, Version=1.6.30117.9648, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  <Private>True</Private>
</Reference>

相关内容

最新更新