标签: dotnet-restore

没事做。指定的项目均不包含要还原的包

我在 dot net 中有一个 Web 应用程序以及其他项目。当我打开 .sln 文件并发布 Web 项目时,它确实如此。但是,当我尝试使用命令行和 .csproj 发布 Web 项目时,它会出错。“无事可做。指定的项目都不包含要恢复的包。”

.net asp.net nuget-package dotnet-restore

17
推荐指数
1
解决办法
5854
查看次数

指定的依赖关系是X但最终得到Y.

我已经更新了一个类库project.json来定位netstandard1.3net64.

有了这个改变:

$ dotnet restore
log  : Restoring packages
warn : Dependency specified was NETStandard.Library (>= 1.3.0) but ended up with
       NETStandard.Library 1.6.0.
Run Code Online (Sandbox Code Playgroud)

我正在发布一个库,真的需要目标netstandard1.3/ net46.

如何诊断为何使用更高版本?

.net .net-core project.json dotnet-restore

8
推荐指数
1
解决办法
1437
查看次数

Dotnet Restore在Docker构建中失败

您好,我正在尝试dockerize一个ASP NET Core 2.1应用程序,docker build当它执行时失败dotnet restore。我已经检查了其他线程来解决此特定问题,
Nuget连接尝试失败“无法加载源的服务索引”

那里提供的解决方案对我没有帮助。

Docker文件

ARG serverPath=./Core/Server

FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app


COPY ./Core/Server/*.csproj ./
RUN dotnet restore  //fails here

COPY ./Core/Server/ ./
RUN dotnet publish -c Release -o out  


FROM microsoft/dotnet:2.1-aspnetcore-runtime 
WORKDIR /app
COPY --from=build-env /app/out  .
ENTRYPOINT ["dotnet","Server.dll"]
Run Code Online (Sandbox Code Playgroud)

docker build的输出

$ docker build -t server .
Sending build context to Docker daemon  11.13MB
Step 1/11 : ARG serverPath=./Core/Server
Step 2/11 : FROM microsoft/dotnet:sdk AS …
Run Code Online (Sandbox Code Playgroud)

nuget docker dotnet-restore

8
推荐指数
1
解决办法
1069
查看次数

如何通过私有 NuGet 服务器使用 API 密钥进行 dotnet Restore

我创建了一个私有 NuGet 服务器(https://github.com/ai-traders/liget),它需要 API 密钥来上传包,但不需要下载/恢复它们。

我确信我可以增强服务器的代码以在恢复时强制使用 API 密钥,但我所做的调查(主要是谷歌搜索)尚未提供任何有关如何指定 API 密钥dotnet restore以及Visual Studio NuGet UI 似乎不允许这样做。

有没有办法为 dotnet 恢复指定 API 密钥,或者是将其作为查询参数包含的唯一选项(例如https://mynuget.com?apikey= <API_KEY>)?理想情况下,我想将 API 密钥放在标头中。

nuget-server .net-core dotnet-restore

8
推荐指数
1
解决办法
9345
查看次数

如何强制 nuget 采用最新版本的软件包?

我在获取特定程序集版本的第一个版本而不是最新版本的 nuget 时遇到问题。以下是解释发生了什么的步骤:

  1. 删除本地 nuget 缓存。
  2. 删除项目中的 project.lock.json 文件。
  3. 检查 nuget 提要中最新版本的版本号:102
  4. 运行 dotnet restore --no-cache。
  5. 项目文件夹在本地缓存中重新创建,但内部版本号为 98。

版本 98 和 102 的版本号均为 1.2。如何在不将版本号增加到 1.3 的情况下强制 dotnet restore 获取最新版本的 nuget 包?

谢谢!

nuget nuget-package-restore .net-core dotnet-restore

7
推荐指数
1
解决办法
4554
查看次数

如何使用自定义 NuGet feed 在 VSTS 上运行 dotnet 测试?

我们有一个项目依赖于自定义 NuGet feed(也托管在 VSTS 中)。

我正在尝试整合一个新阶段来生成代码覆盖率报告,如这篇博客文章中所示。我的新阶段如下所示:

新阶段截图

并由以下步骤组成:

  1. .NET Core 工具安装程序 - 使用 SDK 2.0.0
  2. dotnet restore在“使用此 VSTS/TFS feed 中的包”下拉列表中选择我的自定义 feed
  3. dotnet test使用相关参数来收集代码覆盖率
  4. 使用 ReportGenerator 的自定义步骤
  5. 发布结果的步骤

问题是dotnet test坚持尝试恢复包本身。由于我找不到方法告诉它使用自定义源,因此在尝试恢复这些包时失败:

D:\a\1\s\MyProject\MyProject.csproj : error NU1101: Unable to find package My.Package. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages, nuget.org

我的主要构建过程运行良好,并且能够从自定义源恢复包。区别在于使用 Visual Studio(即非dotnet)版本的命令:

主要构建过程的屏幕截图

处理这个问题的正确方法是什么?

我是否需要找到某种方式来讲述dotnet test我的自定义 Feed?

或者(假设我restore之前正在运行)我是否需要说服它完全跳过恢复?

continuous-integration azure-devops dotnet-cli dotnet-restore dotnet-test

7
推荐指数
1
解决办法
3147
查看次数

asp.net核心docker问题

我是Docker的新手,我开发了一个简单的asp.net核心webapi解决方案,该解决方案使用来自私有存储库的NuGet软件包。

dotnet restore命令针对缺少的NuGet软件包返回错误,该软件包位于解决方案内部nuget.config文件中引入的私有存储库中。

有谁知道我的配置和dockerfile有什么问题吗?

Docker文件

FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetcoretssl.dll"]
Run Code Online (Sandbox Code Playgroud)

.dockerignore

bin\
obj\
Run Code Online (Sandbox Code Playgroud)

我在解决方案的根目录中也有一个nuget.config文件,如下所示

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="myrepo" value="\\path\to\the\nuget_packages_folder" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration> 
Run Code Online (Sandbox Code Playgroud)

但是我收到以下消息

docker build -t …

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

5
推荐指数
1
解决办法
1537
查看次数

dotnet restore faileding - 无法加载源[包名称]的服务索引

我有一个VSTS内置版本失败,出现以下错误:

error :   Unable to load the service index for source [source name] 2018-02-28T09:04:12.1080070Z /usr/share/dotnet/sdk/1.1.4/NuGet.targets(102,5)
error :   Response status code does not indicate success: 402 (Payment Required - The user does not have a license for the extension ms.feed. 
Run Code Online (Sandbox Code Playgroud)

这是在降低了在VSTS中创建从Basic到Stakeholder的Package的用户的访问级别之后发生的,VSTS又从该用户中删除了Package Management扩展.将访问级别放回Basic并为其提供Package Management扩展可以解决问题,尽管这不是一个长期修复,因为他们现在离开了公司.

我已经确保有用户使用Package Management扩展,并且还有一个具有Package权限的PAT.然后我将nuget.config文件中的密码更新为上述PAT令牌,但是如果设置Package的用户处于利益相关者级别,则构建仍然会失败并出现上述错误.

我猜测用户用他们的PAT设置了一些东西,以某种方式将它们链接到包,但我很难找到它是什么/它可能在哪里.

我正在Docker中托管的构建代理上运行构建.

任何帮助将不胜感激 - 谢谢!

build-agent nuget nuget-package-restore azure-devops dotnet-restore

5
推荐指数
1
解决办法
1648
查看次数

强制将特定的 nuget 包下载到本地包文件夹

我有一个引用 Json.Net 12.0.1 的 .NET Core Visual Studio 2017 解决方案。在我的开发环境中一切正常。当我运行 dotnet restore 时,Json.Net 被下载到解决方案包文件夹中的 Newtonsoft.Json.12.0.1。

但是,当我在构建服务器上运行 restore 时,解决方案想要从 nuget 全局缓存中获取一个 Json.Net 版本。

我可以强制将所有包下载到本地包文件夹,但这最终会使用不同的命名约定 (Newtonsoft.Json/12.0.1),当然,无论如何都要重新下载全局变量中存在的所有内容。所以它只会产生很多开销,但仍然不起作用。

我想我可以在我的 .csproj 文件中使用一些 hocus pocus 来为 Json.Net 提供不同的提示路径,但这似乎过于复杂。

有没有办法强制 Nuget 将 Json.net(或任何包)下载到本地包中的特定文件夹,或者使用 CLI 工具以其他方式解决此问题?

同样,这是 .NET Core,所以没有 packages.config。

谢谢!

visual-studio nuget .net-core dotnet-restore

5
推荐指数
1
解决办法
3761
查看次数

从私人源在 Docker 上恢复 Nuget

我的应用程序是由这个 Dockerfile 定义的

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build

COPY ["MyCertificate.cer", "/usr/local/share/ca-certificates/cacert.crt"]
RUN update-ca-certificates

WORKDIR /src
COPY ["nuget.config", "MyApplication.API/"]
COPY ["MyApplication.API/MyApplication.API.csproj", "MyApplication.API/"]
RUN dotnet restore --configfile MyApplication.API/nuget.config MyApplication.API/MyApplication.API.csproj -v d

COPY . .
WORKDIR "/src/MyApplication.API"
RUN dotnet build "MyApplication.API.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyApplication.API.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyApplication.API.dll"]
Run Code Online (Sandbox Code Playgroud)

这是我的 nuget.config

<?xml version="1.0" encoding="utf-8"?>
<configuration> …
Run Code Online (Sandbox Code Playgroud)

.net ssl nuget docker dotnet-restore

5
推荐指数
1
解决办法
2401
查看次数