标签: nuget-package-restore

如何禁用 .NET Core 包自动恢复?

默认情况下,如果编辑 project.json 中的依赖项,Visual Studio 会自动启动包还原。是否可以禁用此行为?

我正在处理dotnet restore参数,出于测试目的,我正在编辑project.json/removing project.lock.json。但是 VS 在进行任何更改后会自动运行默认的“dotnet Restore”,这会中断我的测试。

.net nuget-package-restore visual-studio-2015 .net-core

4
推荐指数
1
解决办法
2090
查看次数

VS2017 nuget 不断在错误的位置搜索包

所以我从 nuget packages.config 迁移到 PackageReference 并发现存在一些兼容性问题。我将项目恢复到它的工作状态(在 PackageReference 之前),现在我的项目没有编译。

我收到以下错误:

严重性代码描述项目文件行抑制状态错误在 C:\Users\user.nuget\packages 中找不到版本为 6.2.0 的包 EntityFramework。运行 NuGet 包还原以下载包。数据库管理器

这发生在多个包上。由于某种原因,Nuget 似乎正在 user.net\package 目录中搜索包。最初,项目中有一个包含所有包的文件夹。

我通过编辑 NuGet.Config 文件强制全局路径位于项目内的文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="C:\Projects\App\App Source\packages\" />
    <add key="globalPackagesFolder" value="C:\Projects\App\App Source\packages\" />
  </config>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我不知道为什么 Nuget 一直在那个位置寻找包裹。它应该查看项目中的包文件夹。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="6.2.0" targetFramework="net46" />
  <package id="EntityFramework6.Npgsql" version="3.1.1" targetFramework="net46" …
Run Code Online (Sandbox Code Playgroud)

visual-studio nuget-package nuget-package-restore packagereference

4
推荐指数
1
解决办法
3018
查看次数

Azure DevOps:资产文件没有“.NETCoreApp,Version=v2.2/linux-x64”的目标

我正在使用任务组在 Azure DevOps 中为 AspNet Core Web Api 创建一个构建管道,该任务组首先安装 .Net Core SDK (2.2),然后使用dotnet restore(使用 VSTS 源)进行包还原,然后构建项目。

在构建步骤,我提供以下参数:

--configuration Release --runtime $(Target Platform) --no-restore /p:Version=$(Major Version).$(Minor Version).$(Build.BuildNumber).

buildstep 的所有步骤都成功了。但是,我在构建步骤中收到以下错误:

[command]C:\windows\system32\chcp.com 65001
Active code page: 65001
[command]C:\hostedtoolcache\windows\dotnet\dotnet.exe build D:\a\1\s\WebApp\WebApp.csproj --configuration Release --runtime linux-x64 --no-restore /p:Version=1.0.40
Microsoft (R) Build Engine version 16.2.32702+c4012a063 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

C:\hostedtoolcache\windows\dotnet\sdk\2.2.401\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): error NETSDK1047: Assets file 'D:\a\1\s\WebApp\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.2/linux-x64'. Ensure that restore has …
Run Code Online (Sandbox Code Playgroud)

nuget-package-restore azure-devops azure-pipelines-release-pipeline

4
推荐指数
1
解决办法
2877
查看次数

DevOps Pipeline - 在构建步骤中找不到包

我正在尝试将现有的 ASP.NET MVC Web 应用程序从 TeamCity 转移到 Azure DevOps,但是我似乎无法让我的管道找到它从 NuGet 包还原任务还原的包。

该解决方案有多个项目,并且它们使用了大量 NuGet 包。我创建了一个多步骤管道,目前有一个 NuGet 还原任务和一个 VS 构建任务。

解决方案结构是这样的:

\source
..\SolutionFolder
...Solution.sln
..\..\Project1
....Project1.csproj
..\..\Project2
....Project2.csproj
..\..\Packages
azure-pipelines.yaml
NuGet.config
Run Code Online (Sandbox Code Playgroud)

管道 YAML 如下所示:

trigger:
- PipelineBranch

pool:
  vmImage: 'windows-latest'

stages:

## NuGet Restore ##
- stage: nuget_restore
  displayName: 'Restore nuget packages'
  jobs:
  - job: nuget_package_restore
    steps:
    - task: NuGetCommand@2
      displayName: 'NuGet restore'
      inputs:
        command: 'restore'
        restoreSolution: 'source/SolutionFolder/Solution.sln'
        feedsToUse: 'config'
        nugetConfigPath: 'NuGet.Config'
        restoreDirectory: '$(Build.SourcesDirectory)\source\SolutionFolder\packages'

## Build ##
- stage: build_for_int
  displayName: 'Build …
Run Code Online (Sandbox Code Playgroud)

msbuild-task nuget-package-restore azure-devops azure-pipelines multistage-pipeline

4
推荐指数
1
解决办法
3253
查看次数

Nuget 恢复因身份验证失败

在迁移到我的 Linux 机器上工作时,我遇到了 Nuget 的问题。我们的项目是 .net core 3.1,每个项目都有自己的 nuget.config 文件,其中有四个包源。第一个是显而易见的,但其余的都是针对公司的。

\n

每当我构建时,我都会收到一条错误消息,指出我未获得授权:

\n

/usr/share/dotnet/sdk/3.1.301/NuGet.targets(128,5):错误:无法加载源https://aldinternational.pkgs.visualstudio.com/_packaging/PLASMA/nuget/的服务索引v3/index.json。[/home/lg/Documents/ALD/repo/CampaignIngestion.OmegaConnector/OmegaConnector.Functions/OmegaConnector.Functions.csproj]\n/usr/share/dotnet/sdk/3.1.301/NuGet.targets(128,5):错误:响应状态代码不表示成功:401(未经授权)。[/home/lg/Documents/ALD/repo/CampaignIngestion.OmegaConnector/OmegaConnector.Functions/OmegaConnector.Functions.csproj]\n0 警告\n1 错误

\n

但当我将其放入浏览器中时,我可以获得 json 输出。我跑了:

\n

mozroots --import --sync --url https://hg.mozilla.org/mozilla-central/raw-file/tip/security\xe2\x80\x8c\xe2\x80\x8b/nss/lib/ckfw/内置\xe2\x80\x8c\xe2\x80\x8bns/certdata.txt

\n

因为我发现它的线程似乎有类似的问题,但对我来说没有运气。

\n
dotnet --info output\n\n.NET Core SDK (reflecting any global.json):\n Version:   3.1.301\n Commit:    7feb845744\n\nRuntime Environment:\n OS Name:     ubuntu\n OS Version:  18.04\n OS Platform: Linux\n RID:         ubuntu.18.04-x64\n Base Path:   /usr/share/dotnet/sdk/3.1.301/\n\nHost (useful for support):\n  Version: 3.1.5\n  Commit:  65cd789777\n\n.NET Core SDKs installed:\n  2.1.302 [/usr/share/dotnet/sdk]\n  2.2.300 [/usr/share/dotnet/sdk]\n  3.1.301 [/usr/share/dotnet/sdk]\n\n.NET Core runtimes installed:\n  Microsoft.AspNetCore.All 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]\n …
Run Code Online (Sandbox Code Playgroud)

c# nuget-package-restore .net-core

4
推荐指数
1
解决办法
8204
查看次数

Azure Devops - Nuget Package 从 .NET Core 3.1 迁移到 .NET 5 的兼容性问题

我有一个 .NET Core 解决方案,它使用 .NET Core 3.1 在 Azure Devops 上使用管道运行良好。在管道上一切正常。

从 .NET Core 3.1 迁移到 .NET 5.0 后,我开始在运行管道时遇到一些奇怪的问题,尤其是 Nuget 包。

我可以毫无问题地进行构建,但是当它开始使用 Nuget Package 进行打包时,出现了以下错误:

[错误] nuget 命令失败,退出代码 (1)

NU1202:包 Microsoft.EntityFrameworkCore 5.0.0 与 net50 (.NETFramework,Version=v5.0) 不兼容。包 Microsoft.EntityFrameworkCore 5.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1)

一些奇怪的事实是这个解决方案在本地机器上运行良好。

<PropertyGroup>
  <TargetFramework>net5.0</TargetFramework>
  <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  <Version>1.8.8.9</Version>
  <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
Run Code Online (Sandbox Code Playgroud)

我已经尝试更改 Build 上的操作系统,但出现此错误:

MSBuild 的当前可用版本是 16.7.0.37604。将 global.json 中指定的 .NET Core SDK 更改为需要当前可用的 MSBuild 版本的旧版本。

有人有想法吗?

nuget nuget-package-restore azure-devops .net-5 asp.net-core-5.0

4
推荐指数
1
解决办法
4187
查看次数

如何停止ServiceStack 3.9.71 NuGet包安装ServiceStack.Text 4.0.24?

我有一个使用ServiceStack的项目; 我们运行旧的3.9.x代码库而不是升级到4.x,因为ServiceStack 4需要商业许可证.

我自己的API客户端在.nuspec文件中定义了依赖关系,如下所示:

<dependencies>
  <dependency id="DotNetOpenAuth.OAuth2.Client" version="[4.3,5)" />
  <dependency id="log4net" version="[2.0,2.1)" />
  <dependency id="ServiceStack" version="[3.9.71,4)" />
</dependencies>
Run Code Online (Sandbox Code Playgroud)

问题是 - ServiceStack包依赖于ServiceStack框架的各个其他位,安装ServiceStack 3.9.71正在将ServiceStack.Text v4.0.24 安装到我的项目中.它确实弹出了需要许可证接受的对话框,这让我想到了一些奇怪的事情 - 但是没有为其他所需的ServiceStack组件手动定义我自己的依赖项,我怎样才能确保我不会结束在我的项目中使用未经许可的ServiceStack 4.x?

licensing nuget servicestack servicestack-text nuget-package-restore

3
推荐指数
1
解决办法
847
查看次数

ASP.NET Core错误配置了Nuget包依赖项 - 意外的包版本警告

我有一个asp.net核心项目,前几天工作得很好.我在私人仓库的github上有它.昨天它从VS安装更新后停止工作.我已经搜遍了网络和github,找不到任何解决方案.我得到的警告的图像是附加的.Microsoft的警告说明如下,

NU1603
问题程序包相关性指定了无法找到的版本.使用了更高版本,这与编写包的内容不同.这意味着恢复没有找到最佳匹配.每次还原都会向下浮动,尝试找到可以使用的较低版本.这意味着还原每次都会联机检查所有源,而不是使用用户包文件夹中已存在的包.
常见原因 包源不包含预期的下限版本.如果预期的包尚未发布,那么这可能是包创作错误.
示例消息 NuGet.Packaging 4.0.0依赖于NuGet.Versioning(> = 4.0.0),但未找到4.0.0.已经解决了5.0.0的近似最佳匹配.

我不知道怎么解决这个问题?似乎没有解决方案,我甚至重新安装了VS,清除了nuget缓存,从全局文件夹中删除了包,但我的解决方案无效.

任何有关方面的帮助将受到高度赞赏.

VS警告信息

nuget-package nuget-package-restore asp.net-core

3
推荐指数
1
解决办法
1351
查看次数

将包管理默认为PackageReference

在Nuget.Config中有没有办法将Package Management选项默认为"PackageReference"?我会假设没有,因为我没有在这里看到它,但我想我会问.

我希望在某个存储库的所有开发人员机器上默认这个,我希望我可以在存储在源代码管理中的Nuget.Config文件中更改它.

这就是我所说的:

在此输入图像描述

nuget nuget-package-restore

3
推荐指数
1
解决办法
493
查看次数

Visual Studio 2017代码编译,但nuget包是红色下划线

重新安装我的电脑,包括VS后,我的代码会编译,但是某些nuget软件包的使用语句(因此,使用软件包的行也是下划线)带有红色错误,就好像没有引用软件包一样.但是,代码编译得很好.虽然这可能只是一个烦恼,暂停代码并修改注释中的空格现在不会让我继续像过去那样.

我确定我只是遗漏了某些缓存,但到目前为止我还没有找到解决方案.VS清理/重建,清理并重新打开VS,bin/obj文件夹删除没有帮助,恢复nuget包说没有什么可以恢复.

c# visual-studio nuget-package-restore

3
推荐指数
1
解决办法
319
查看次数