标签: nuget-package-restore

无法指定nuget包文件夹位置

我读过这个这个的NuGet文档.但我无法让它发挥作用.

这是我的配置:

我有一个"文件/新项目"控制台应用程序,我的项目文件夹是:

c:\ConsoleApplication1\ConsoleApplication1
    ... Program.cs and source files
c:\ConsoleApplication1\ConsoleApplication1.sln
c:\ConsoleApplication1\nuget.config
Run Code Online (Sandbox Code Playgroud)

我的nuget.config档案是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositorypath" value="c:\blah" />
  </config>
</configuration>
Run Code Online (Sandbox Code Playgroud)

现在,当我安装或恢复软件包时,它们总是安装packages在项目文件夹中的文件夹中

我正在使用VisualStudio 2015 RC

nuget nuget-package-restore vs-2015-preview

5
推荐指数
0
解决办法
39
查看次数

为什么NuGet包管理器在多个位置下载/复制包?

我有目录结构,如 -

Projects
   .nuget
      NuGet.exe
      NuGet.config
      NuGet.targets
      **packages (I want to download package for different solution HERE ONLY)**
   Sources
      Applications
         App1
            App1.sln (Solution File)
            **packages (NuGet downloads packages here first then copies to expected folder, WHY??)**
            App1 (Porject Directory)
               App1.csproj
         App2
            App2.sln (Solution File)
            **packages (NuGet downloads packages here first then copies to expected folder, WHY??)**
            App2 (Porject Directory)
               App2.csproj
Run Code Online (Sandbox Code Playgroud)

我使用以下代码在每个解决方案中引用了.nuget文件夹

Project("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}") = ".nuget", ".nuget", "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}"
    ProjectSection(SolutionItems) = preProject
        ..\..\..\.nuget\NuGet.Config = ..\..\..\.nuget\NuGet.Config
        ..\..\..\.nuget\NuGet.exe = ..\..\..\.nuget\NuGet.exe
        ..\..\..\.nuget\NuGet.targets = ..\..\..\.nuget\NuGet.targets
    EndProjectSection
EndProject …
Run Code Online (Sandbox Code Playgroud)

nuget nuget-package-restore

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

NuGet不会从包中解压缩程序集

环境:VS Enterprise 2015 Update 1,程序包管理器控制台主机版本3.3.0.167

重现的步骤:只需创建一个目标为.Net 4.5.2的新项目(例如控制台应用程序)(但也尝试使用其他.net版本).

当我安装nuget包时,下载包并且看似安装没有错误.但是,nuget不会添加对dll的引用.当查看packages文件夹时,事实证明没有.dlls解压缩,虽然.nupkg文件在那里并且没有损坏(我可以使用nuget包浏览器打开它并查看lib文件夹的内容).

知道是什么原因引起的吗?

包管理器控制台中的输出:

PM> install-package log4net -verbose
  Attempting to gather dependencies information for package 'log4net.2.0.5' with respect to project 'ConsoleApplication4', targeting '.NETFramework,Version=v4.5.2'
  Attempting to resolve dependencies for package 'log4net.2.0.5' with DependencyBehavior 'Lowest'
  Resolving actions to install package 'log4net.2.0.5'
  Resolved actions to install package 'log4net.2.0.5'
  For adding package 'log4net.2.0.5' to project 'ConsoleApplication4' that targets 'net452'.
  For adding package 'log4net.2.0.5' to project 'ConsoleApplication4' that targets 'net452'.
  Adding package 'log4net.2.0.5' to folder 'c:\Projects\ConsoleApplication4\packages'
  Added package 'log4net.2.0.5' …
Run Code Online (Sandbox Code Playgroud)

nuget nuget-package-restore

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

Visual Studio Team Services持续集成:NuGet Restore任务失败

我在Team Services中使用持续集成功能(Visual Studio Online).我的构建定义针对的是解决方案(而不是整个解决方案)中的特定项目,即ClientUI MVC网站.

该解决方案包含三个项目:

  1. ClientUI
  2. AdminUI
  3. 客户服务

在此输入图像描述

ClientUI项目的构建定义:

存储库:

在此输入图像描述

Nuget安装程序步骤:我尝试了不同的参数,但没有工作. 在此输入图像描述

Visual Studio Build

在此输入图像描述

在尝试定位单个项目之前,我的构建定义是使用以下参数定位整个解决方案:

  1. NuGet安装程序 - > 解决方案的路径:**\*.sln
  2. Visual Studio Build - > 解决方案:**\*.sln; MSBuild参数:/p:outdir=$(build.artifactstagingdirectory)

它工作正常.但是现在,它会在Nugget Restore任务中生成此错误:

2016-04-22T21:07:00.6716725Z Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.98.1\tasks\NuGetInstaller\0.1.25
2016-04-22T21:07:00.8163908Z Executing the powershell script: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.98.1\tasks\NuGetInstaller\0.1.25\NuGetInstaller.ps1


2016-04-22T21:07:01.5283529Z ##[error]Cannot find path 'C:\a\1\s\packages.config' because it does not exist.
2016-04-22T21:07:01.5439897Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.98.1\agent\worker\tools\NuGet.exe restore "C:\a\1\s\packages.config"  -NonInteractive


2016-04-22T21:07:03.0441507Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.


2016-04-22T21:07:03.0597010Z ##[error]Cannot determine the packages folder to restore …
Run Code Online (Sandbox Code Playgroud)

msbuild continuous-integration nuget-package-restore azure-devops azure-pipelines

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

在Visual Studio Team Services中托管的构建代理上还原Nuget时找不到AutoMapper软件包5.1.1

在Team Services(以前是VSO)中在托管的构建代理上还原AutoMapper的问题确实很奇怪。它只是失败并显示警告“无法找到软件包AutoMapper的5.1.1版本”。

我们有一个自定义和私有的nuget仓库,因此我们不得不添加nuget.config列出所有源,但是由于某种原因,找不到AutoMapper!即使删除了packages文件夹,它在Visual Studio IDE中也可以正常工作。

为了测试它是否是带有nuget源的自定义设置,我为另一个解决方案创建了一个版本,该版本很高兴地通过了还原,因为那里没有对AutoMapper的引用。

我不能断定它是AutoMapper,因为它可以在IDE中运行,但是我不能说nuget.config是一个问题,或者是因为第二个解决方案可以工作(存在另一个问题)

automapper nuget-package-restore azure-devops

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

VSTS NuGet还原失败(代理?)

到目前为止,我们一直在使用Azure VM来构建应用程序。由于法律要求,我们被指示将这些活动转移到位于代理后面的本地服务器上。现在,我看到构建失败并显示以下日志消息:

##[error]getaddrinfo ENOTFOUND dist.nuget.org dist.nuget.org:443
Run Code Online (Sandbox Code Playgroud)

所以我假设这可能是由于nuget代理配置。因此,我尝试添加具有正确代理设置的nuget.config文件,然后将其检查到解决方案中,但这没有任何改变。还尝试下载CLI并设置nuget代理配置设置,但同样无济于事。

奇怪的是;当我从cmd在本地运行命令时,一切正常!所以我一定在这里想念什么,但是呢?

proxy nuget nuget-package-restore azure-pipelines

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

启用PackageReference时Nuget在哪里下载软件包

我在Visual Studio 2017中启用了PackageReference此功能,以便程序包引用将存储在csproj文件中而不是package.config文件中

我在csproj文件中添加了这两行以启用PackageRefernce

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
Run Code Online (Sandbox Code Playgroud)

现在,当我使用Nuget软件包管理器安装任何软件包时,我会看到类似这样的内容

在此处输入图片说明

带有蓝色图标的引用将作为软件包添加。

但是,我packages在解决方案目录下的文件夹中看不到任何这些软件包。此外,如果我右键单击蓝色图标(即引用)并单击属性,则窗口为空白。我看不到其引用的路径

那么,Visual Studio何时下载软件包?引用已启用

nuget nuget-package nuget-package-restore visual-studio-2017

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

如何在msbuild 15.0命令行中指定私有nuget包源?

在vs 2017中使用msbuild 15.0时是否可以指定私有nuget feed服务器?我正在使用的当前powershell命令如下:

&$msbuild /t:restore /tv:15.0 /t:Rebuild /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)

默认情况下,这只是获取nuget.org的feed.

.net msbuild nuget nuget-package-restore visual-studio-2017

5
推荐指数
3
解决办法
4698
查看次数

nuget包的本地来源不存在

在另一台计算机上打开项目并在VS Code上运行它后,发生了以下问题:

C:\Program Files\dotnet\sdk\2.2.300\NuGet.targets(121,5): error : The 
local source C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\' 
doesn't exist.
Run Code Online (Sandbox Code Playgroud)

我找到了VS的解决方案,但没有VS代码。

nuget nuget-package-restore visual-studio-code

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

如何将NuGet contentFiles提取到特定目录?

到目前为止,我已经尝试过:

我有以下.nuspec文件,用于定义我的程序包(为提高可读性而进行了简化):

<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
  .
  .
  .
    <dependencies/>
    <contentFiles>     
      <files include="any\any\config\*.*" buildAction="None" copyToOutput="true" flatten="false"/>
    </contentFiles>
  </metadata>
  <files>
    <file src="bin\Assembly.dll" target="lib\net461" />
    <file src="bin\Assembly.pdb" target="lib\net461" />
    <file src="Config\cf.xml" target="contentFiles\any\any\config"/>
    <file src="Config\cf.txt" target="contentFiles\any\any\config"/>
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

如您所见,它在子目录中包含一个已编译的Assembly及其调试符号文件以及两个内容文件

这将导致以下编译输出,其中Assembly.dll被提取到输出目录以及config子目录(其中包含两个cf. *文件):

实际构建输出


题:

我想要做的是将子目录配置在目录树中上移一个,因此它位于输出目录旁边 -基本上维护.nuspec文件中输入文件的结构(假设bin是目录的输出目录)我的.csproj):

nuspec目录结构 所需的构建输出

如何告诉NuGet程序包我要将contentFiles提取到的确切位置?

msbuild-task nuget nuget-package nuget-package-restore

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