我在Visual Studio下为我的项目启用了自动还原功能,但是当我切换到MAC和Xamarin Studio时,我无法恢复这些包:
xxx.csproj:错误:此项目引用此计算机上缺少的NuGet包.启用NuGet Package Restore以下载它们
假设我有一个以下文件夹结构
build
build.fsx
build.bat
//build tools etc.
src
Project1
Project2
//...
Run Code Online (Sandbox Code Playgroud)
当我在build.fsx中运行我的RestorePackages()时,它将在"./**/packages.config"中查找packages.config(根据文档),并将忽略要在项目文件夹中恢复的所有包.
我可以使用这个方法,并且可能会逐个地为每个项目的packages.config提供路径,但是我不希望每次将新项目添加到解决方案时都更改构建脚本.
有没有办法让RestorePackages()在某个特定路径中查找所有packages.config?
编辑:
另外,相关的问题.我明白了,我必须将nuget路径传递给RestorePackage,因为默认情况下它似乎是在./tools/nuget/nuget.exe中.我可以这样做:
RestorePackage(fun p -> { p with ToolPath = "my/nuget/path"})
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将它与你提供的例子联系起来.管道和函数调用对我来说,F#语法仍然有点混乱.
我跑的时候
Nuget.exe restore [path]\packages.config -PackagesDirectory [path]\build\packages
Run Code Online (Sandbox Code Playgroud)
它按预期工作.但是,命令
Nuget.exe restore [path]\bigpackages.config -PackagesDirectory [path]\build\packages
Run Code Online (Sandbox Code Playgroud)
失败并出现错误:
找不到文件格式标头.
即使我复制了packages.config文件并将其重命名为bigpackages.config,也是如此.
当在VSO的新主机代理池中运行构建时,我有一个powershell脚本来恢复每个project.json使用的NuGet包dnu restore.
此过程可能需要2分钟以上.
难道不能以某种方式在代理上缓存这些包吗?如果我们拥有自己的自定义代理,这是否可能?
我想将packages.config一个项目复制到新创建的项目中,并在 VS2015 SP3 中添加对它的引用。
这篇文章介绍了Update-Package -Reinstall -ProjectName Your.Project.Name但它没有按我预期的那样工作。即使具有相同的构建环境(.NET 4.5.2 控制台应用程序),也并非所有包都添加到项目中。此外,它会packages.config在重新安装过程后仅覆盖添加的包。
如何正确地做到这一点?
+ 追加下面是我的实际packages.config内容。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net452" />
<package id="Microsoft.Azure.WebJobs" version="1.1.2" targetFramework="net452" />
<package id="Microsoft.Azure.WebJobs.Core" version="1.1.2" targetFramework="net452" />
<package id="Microsoft.Azure.WebJobs.Extensions" version="1.0.1" targetFramework="net452" />
<package id="Microsoft.Data.Edm" version="5.8.1" targetFramework="net452" />
<package id="Microsoft.Data.OData" version="5.8.1" targetFramework="net452" />
<package id="Microsoft.Data.Services.Client" version="5.8.1" targetFramework="net452" />
<package id="Microsoft.EntityFrameworkCore" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.EntityFrameworkCore.Relational" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.EntityFrameworkCore.SqlServer" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.Caching.Abstractions" version="1.1.0" …Run Code Online (Sandbox Code Playgroud) 在使用代理后面的 docker-compose 构建时出现金块恢复错误。我已经在 docker for windows 中设置了代理。Nuget 恢复适用于命令行dotnet restore和 Visual Studio 调试,但不适用于docker-compose.
:\Program Files\dotnet\sdk\2.1.104\NuGet.targets(104,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\src\WebApp.sln]
:\Program Files\dotnet\sdk\2.1.104\NuGet.targets(104,5): error : An error occurred while sending the request. [C:\src\WebApp.sln]
:\Program Files\dotnet\sdk\2.1.104\NuGet.targets(104,5): error : A connection with the server could not be established [C:\src\WebApp.sln]
ERROR: Service 'idenityapi' failed to build: The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; dotnet restore -nowarn:msb3202,nu1503' r
turned a non-zero code: …Run Code Online (Sandbox Code Playgroud) nuget docker nuget-package-restore dockerfile docker-compose
升级到 Azure DevOps Server 2019 后,自动管道构建在 NuGet 还原步骤失败,显示:
错误:错误:无法获得本地颁发者证书
无法恢复软件包
Microsoft 的文档指出,在 Windows 上运行的构建代理使用 Windows 证书存储,因此我检查了构建服务器上是否正确安装了所需的证书,但它仍然失败。
有许多问题具有相似的症状,但原因却不尽相同。经过调查,我找到了解决方案,但我没有在这个确切的问题上发现任何东西,所以我会发布一个答案,希望可以为其他人节省一些时间!
ssl-certificate nuget-package-restore azure-pipelines azure-devops-server-2019
我在本地提要上将 nuget 包从 2.2.x 更新到 3.1.0。然后,在构建机器上尝试构建项目,但是:
Project.csproj(0,0): Error NU1102: Unable to find package Microsoft.NETCore.App.Host.win-x64 with version (= 2.2.7)
- Found 1 version(s) in localfeed [ Nearest version: 3.1.0 ]
Run Code Online (Sandbox Code Playgroud)
nuget.org 链接说我不应该直接使用它。所以我没有直接使用它。
csproj 示例:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<ProjectGuid>{9B42C5B4-188E-482F-BC44-C3B243F92848}</ProjectGuid>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp3.1</TargetFrameworks>
<PackageId>Project</PackageId>
<AssemblyName>Projectr</AssemblyName>
<Version>1.1.0</Version>
Run Code Online (Sandbox Code Playgroud)
为什么.net core 不能使用 Microsoft.NETCore.App.Host.win-x64 3.1.0 版本?
目前,我正在Visual Studio 2017中开发.net core项目。我还需要在 VSTS 中设置 CI(持续集成)。
这是我的构建定义中的 nuget 恢复步骤
但我的构建失败了,因为它无法恢复任何包。这是它的日志。它说“此解决方案中的项目均未指定任何包”。我知道在 VS2017 中他们改变了 nuget 包的处理方式。有人对此有想法或经验吗?
2017-03-22T20:25:11.9517911Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
2017-03-22T20:25:11.9674167Z Nothing to do. None of the projects in this solution specify any packages for NuGet to restore.
2017-03-22T20:25:11.9830425Z ##[section]Finishing: NuGet restore **/*.sln
Run Code Online (Sandbox Code Playgroud)
我不想使用,dotnet restore因为微软这么说
.NET Core 的 dotnet Restore 命令当前不支持加密凭据。要将 VSTS NuGet 源与 dotnet 还原结合使用,您需要以纯文本形式指定个人访问令牌。
所以我不想存储我的个人访问令牌。 https://www.visualstudio.com/en-us/docs/package/nuget/auth#net-core
c# nuget-package-restore .net-core azure-devops visual-studio-2017
目前我有一个要求,我们有单独的合同和实施程序集。创建 nuget 包并尝试使用 nuget 包后,它会失败,因为包管理器无法找到依赖(合同)程序集。
这似乎是 .net core 中的一个开放问题。
https://github.com/dotnet/cli/issues/3959
无法理解为什么这么简单的事情在.net core 中不起作用。正在寻找此问题的解决方法。
nuget ×5
c# ×4
azure-devops ×2
msbuild ×2
.net ×1
.net-core ×1
asp.net-core ×1
csproj ×1
dnu ×1
docker ×1
dockerfile ×1
f#-fake ×1
tfs ×1
xamarin ×1