默认情况下,如果编辑 project.json 中的依赖项,Visual Studio 会自动启动包还原。是否可以禁用此行为?
我正在处理dotnet restore参数,出于测试目的,我正在编辑project.json/removing project.lock.json。但是 VS 在进行任何更改后会自动运行默认的“dotnet Restore”,这会中断我的测试。
所以我从 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
我正在使用任务组在 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
我正在尝试将现有的 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
在迁移到我的 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 输出。我跑了:
\nmozroots --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因为我发现它的线程似乎有类似的问题,但对我来说没有运气。
\ndotnet --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) 我有一个 .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
我有一个使用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
我有一个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软件包的使用语句(因此,使用软件包的行也是下划线)带有红色错误,就好像没有引用软件包一样.但是,代码编译得很好.虽然这可能只是一个烦恼,暂停代码并修改注释中的空格现在不会让我继续像过去那样.
我确定我只是遗漏了某些缓存,但到目前为止我还没有找到解决方案.VS清理/重建,清理并重新打开VS,bin/obj文件夹删除没有帮助,恢复nuget包说没有什么可以恢复.
azure-devops ×3
nuget ×3
.net-core ×2
c# ×2
.net ×1
.net-5 ×1
asp.net-core ×1
azure-pipelines-release-pipeline ×1
licensing ×1
msbuild-task ×1
servicestack ×1