构建干净的Nuget2存储库会出错

时间:2018-08-28 19:56:59

标签: c# visual-studio-2015 visual-studio-2017 nuget nuget-package

我目前正在尝试建立自己的nuget存储库(如nuget.org)。

为此,我看了Nuget.Server。但是,当运行此解决方案时,它崩溃了,可以从nuget.org下载一些软件包(例如opencart.entities 1.0.2)。

它在ServerPackageStore.cs的第83行中崩溃:

var tasks = _repository
            .GetPackages()
            .Select(package => 
                TryAddServerPackageAsync(allPackages, package, enableDelisting, token))
            .ToList();

引发异常的函数是GetPackages(),这是nuget-package nuget.core中的函数。为了重写该函数,接受抛出的异常并继续,我从Nuget2下载了源代码,并试图通过克隆仓库来构建它并运行build.cmd:

C:\ Users \ Jonathan \ Desktop \ NuGet2>。\ build.cmd Microsoft(R)Build Engine版本14.0.25420.1 版权所有(C)Microsoft Corporation。保留所有权利。

Target framework is v4.0. VisualStudioVersion is 14.0.
C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(2719,5): 
error MSB3552: Resource file "..\..\NuGet.Client\src\NuGet.Core\NuGet.Frameworks\Strings.resx" cannot be found. 
[C:\Users\Jonathan\Desktop\NuGet2\src\Core\Core.csproj]

当尝试使用Visual Studio 2015和2017 Community Edition进行构建时,会发生相同的错误。

如何构建Nuget2存储库,或者还有另一种方法可以解决Nuget.Server的问题?

1 个答案:

答案 0 :(得分:1)

  

我该如何构建Nuget2存储库,或者还有另一种方法   用Nuget.Server解决我的问题?

您还需要下载解决方案NuGet.Client,并将其解压缩到当前解决方案的文件夹NuGet.Client中。

下载解决方案NuGet2时,您会发现文件夹NuGet.Client是空的。这就是您收到该错误的原因:

  

“错误MSB3552:资源文件   “ .... \ NuGet.Client \ src \ NuGet.Core \ NuGet.Frameworks \ Strings.resx”   找不到。”

要解决此错误,请下载NuGet.Client解决方案并将其解压缩,将文件夹NuGet.Client-49234c230df0fc01868d8b90e667af89be8cc4f6中的所有内容复制到NuGet.Client文件夹中,然后构建项目。

希望这会有所帮助。