我一直在使用Visual Studio 2010中的NuGet包管理器向我们的项目添加第三方依赖项,例如NUnit,Elmah等.默认情况下,这些依赖项安装在与sln文件相同级别的packages文件夹中.
是否有控制此文件夹的创建位置,理想情况下,包文件夹自动添加到版本控制.我知道我可以手动将文件夹移动到我们当前的lib文件夹,但是如果可能的话,我宁愿配置devenv以确保我们可以通过Package Manager进行升级.
谢谢.
我刚刚安装了Json.Net软件包,现在我想知道如何将其导入到我的项目中?我首先尝试"使用Newtonsoft.Json;" 但那还没有到来.我试图通过首先添加对我的项目的引用来寻找它,但我也找不到它的列表?我也似乎无法找到其他任何有这个问题或任何方向进行一些快速Google搜索的人.请告诉我这是多么容易......
我有一个项目的解决方案.打开包管理器控制台,运行Install-Package MSBuildTasks但它在下面给出了一个错误:
Install-Package : The current environment doesn't have a solution open.
At line:1 char:16
+ Install-Package <<<< MSBuildTasks
+ CategoryInfo : InvalidOperation: (:) [Install-Package], InvalidOperationExcep
tion
+ FullyQualifiedErrorId : NuGetNoActiveSolution,NuGet.PowerShell.Commands.InstallPackage
Command
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会这样.请建议我等待回复.谢谢
我只是从(一个较旧的)Microsoft.Bcl.ImmutableNuGet包切换到System.Collections.Immutable并且很惊讶在我的项目中找到所有这些新的包依赖项:
System.Collections
System.Diagnostics.Debug
System.Globalization
System.Linq
System.Resources.ResourceManager
System.Runtime
System.Runtime.Extensions
System.Threading
Run Code Online (Sandbox Code Playgroud)
它们被列为NuGet包的依赖项,因此它们有权在那里,但它们显然也已经安装在我的PC和我的目标环境(Azure btw)上,因为它们随框架一起提供.
我已经在我的项目中有大量的软件包,并且如果可能的话,我希望避免由这8个软件包引起的额外开销(并且不会在脚下拍摄自己).
删除这些依赖项是否安全?
我现在是否必须在整个项目中使用这些软件包,因为它们可能与已安装的版本不同,我的项目的某些部分现在可能使用了错误的软件包?(由于某些DLL连接疯狂?)
编辑:只是为了完整性,因为之前有一个评论:依赖项是实际的包(不是名称空间),必须下载,我的目标是使用.NET 4.6进行编译,在VS2015中工作.虽然有些东西已经过时且包装不需要正常加载,但这是完全可能的吗?
我刚刚在NuGet上运行更新来更新我的软件包.之后,我无法再编译,我收到上述错误.
jquery定义文件在我的项目中.但由于某种原因,引导程序定义文件无法再找到它.
自从我参与这个项目以来已经有一段时间了.我很确定在更新之前我的定义文件在一个完全不同的目录中.但是大多数代码和文件结构都是由Visual Studio NuGet包自动创建的.
这些链接或引用位于何处,以便可以正确找到定义文件?我是TypeScript的新手,所以如果你能详细解释或提供进一步阅读的链接,我们将不胜感激
编辑:
我发现这些被称为Triple-Slash指令.但那些页面并没有告诉我足够理解这个错误.
它告诉我<reference types="..."/>应该用于@types我相信.d.ts文件的包.我尝试将名称更改jquery.d.ts为index.d.ts.我试过把整个路径包括在内../jquery/jquery.d.ts.这些都没有奏效.
最后,我发现以下行angular.d.ts:
/// <reference path="../jquery/jquery.d.ts" />
Run Code Online (Sandbox Code Playgroud)
我将其复制到引导程序中index.d.ts,这似乎可以解决错误.
但这对我来说没有意义.首先,我正在尝试链接到定义文件,而不是TypeScript文件.所以我应该使用reference types,而不是reference path根据上面的文章.但是reference types不起作用.我在这里错过了什么?
文章还说:
只有在手动创建d.ts文件时才使用这些指令.
我没有写这些文件.他们来自NuGet,看起来是自动生成的.那我为什么需要改变呢?
jquery visual-studio nuget-package twitter-bootstrap typescript
我正在创建NuGet包,为此我创建了Nuspec清单文件.在content文件夹中我有两个文件,test.exe和test.config.现在,当任何用户安装此软件包时,我想将这些文件的"复制到输出目录"的属性更改为项目中的"始终复制".
我发现相关问题NuGet如何将属性应用于文件,显示可以使用PowerShell install.ps1脚本执行此操作,但我不知道如何创建该文件.
Visual Studio 2012 > Tools > Options > Package Manager > Package Sources
Run Code Online (Sandbox Code Playgroud)
我添加了一个指向myget.org网址的新Package Source:
http://www.myget.org/F/myfeed/
VS > Tools > Library Package Manager > Manage NuGet Packages for Solution...
Run Code Online (Sandbox Code Playgroud)
我现在被提示输入myget凭据.显然,开发人员每次使用myget包时都必须手动输入凭据,这是不方便的.
此博客介绍了如何在机器级NuGet.config中存储凭据:
https://gist.github.com/xavierdecoster/3205826
但在我按照步骤操作后,VS仍然会提示我输入凭据.
这让我疯狂了几个月,我仍然无法实现它.我的托管库是从Nuget包中提取的,但不是本地的.
我们有一堆由其他公司提供的托管和本地库.我们有它们x86和x64它们的版本.为了在ASP.NET Core项目中使用它们,我必须创建一个Nuget包.
我的架构是:
当然,最后,我需要将我的本机库提取到网站的正确运行时文件夹(例如:) \bin\Debug\net461\win7-x64.
目前我的解决方案是:
build文件夹中targets将它们复制到的文件$(OutputPath)(甚至不是运行时文件夹)xproj我的网站,以获取我的$(USERPROFILE)\.nuget\packages\文件夹中的目标文件并执行它bin文件夹中提取的本机DLL 到runtime一个我试图使用一些配置直接将它们复制到运行时文件夹中project.json(我真的不记得我为这部分尝试过的所有事情),但这总是失败.即使我SkipUnchangedFiles="true"在我的目标文件中指定,这只是被忽略,我的DLL在每次构建期间被复制到我的bin文件夹.
这是一个重要的过程,只是为了实现DLL提取,现在我真的想摆脱所有MsBuild并得到一个更简单的解决方案.
我知道Nuget的新版本,它现在能够在没有添加自定义MsBuild命令的任何帮助的情况下原生提取它们.至于写在这里,C#项目甚至不需要一个targets文件
接下来,可能使用NuGet包的C++和JavaScript项目需要.targets文件来标识必要的程序集和winmd文件.(C#和Visual Basic项目会自动执行此操作.)
我在我的浏览器中打开了一个标签,持续了几个月(原始链接),并意识到此资源最近已从Nuget网站上删除.它解释了如何使用该runtimes文件夹自动提取本机DLL.然而,我从来没有能够得到一个成功的结果,因为它被解释.现在,这个页面已被删除,取而代之的这一个有这么一些解释,而不是谈论这个runtimes文件夹的.
我的猜测是我应该使用runtimes本机DLL的文件夹和lib托管的那个,但我不是100%肯定.(我也应该使用该build文件夹吗?)
我已经尝试了几件事(我记不起尝试次数,正如我所说的几个月的头痛......)就像这样的架构(我不明白这有什么意义,build/native还有本机文件夹runtimes)

我还尝试使用此处描述的.NET框架版本结构用于托管库.
这似乎也是解决方案的一部分
创建程序集引用时,编译器会忽略该体系结构.这是一个加载时间概念.如果存在,加载程序将更喜欢体系结构特定的引用. …
我正在使用VS2012专业版和NuGet Package Manager版本2.2.31210构建MVC4 Web应用程序.我的解决方案中有多个项目,所有项目共享我使用NuGet安装的各种软件包.我的一个项目是一个MVC4 Web应用程序,我使用的是使用NuGet安装的软件包,如bootstrap,jquery UI等.
当我从我的存储库克隆我的整个解决方案的新副本并构建我的MVC4项目时,包恢复功能似乎正在工作:它在解决方案direcotry下创建packages目录并填充它我将期望的所有软件包版本看到.但是,内容文件不会被复制到MVC app目录中的适当位置.奇怪的是,它确实为内容创建目录,但不会复制内容文件本身.
例如,我正在使用Twitter Bootstrap包,它出现在packages/Twitter.Bootstrap.2.2.2中.在MVC项目中,在Content目录中创建了一个名为bootstrap(包含css,img和js目录)的目录.但是,没有css或js文件被复制到这些目录中!
有没有人知道我必须说出什么神奇的咒语才能让构建从NuGet包目录中复制这些内容文件?
我正在尝试使用.nuspec文件生成nuget包.我们在一个屋檐下有几个项目,并尝试创建nLog.config(和转换文件)并通过nuget包分发它.对于任何版本的.Net Framework,我正在寻找相同的配置文件集(只配置没有dll).所以我真的不需要\ lib \net45\myproject.dll或\ lib \net40\myproject.dll.虽然当我生成nuget包时,它总是创建lib文件夹并包含dll.对于与.net框架版本相关的任何项目,哪种创建依赖关系.
下面是我的nuspec文件,以防有人想提及我做错了什么.我试过""和其他一些事情,但没有运气.
<?xml version="1.0"?>
<package >
<metadata>
<id>NLogConfig</id>
<version>1.0.3</version>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<copyright>Copyright 2013</copyright>
<dependencies>
<dependency id="NLog" version="2.1.0" />
<dependency id="NLog.Schema" version="2.1.0" />
</dependencies>
</metadata>
<files>
<file src="NLog.config" target="content" />
<file src="NLog.Debug.config" target="content" />
<file src="NLog.UAT.config" target="content" />
<file src="NLog.Release.config" target="content" />
<file src="tools\*.*" target="tools"/>
</files>
</package>
Run Code Online (Sandbox Code Playgroud)
如何使用nuspec文件(首选)或其他机制完全排除lib文件夹?谢谢 !!

更新1:
我试图偷偷摸摸但没有成功.我把post build事件和试图删除DLL.但不知何故系统很聪明,它给了我错误"错误79无法找到'C:\ GITRepo\NLogConfig\NLogConfig\bin\Release\NLogConfig.dll'.确保项目已经建成."
更新2
我没有找到使用.csproj来构建nuget包的方法,但是使用外部命令并指定nuspec文件我能够获得相同的结果.问题仍然存在,这只是我的解决方法.
nuget-package ×10
nuget ×6
c# ×3
.net ×2
.net-core ×1
asp.net-core ×1
import ×1
jquery ×1
json.net ×1
msbuild-task ×1
myget ×1
powershell ×1
tfs2010 ×1
typescript ×1