我正在为一个C#类库创build一个NuGet包,并且我希望在库中包含生成的Xml文档。 这是我的nuspec文件: <?xml version="1.0" encoding="utf-8"?> <package> <metadata> <id>MyLibrary</id> <version>1.0.0.0</version> <authors>John Nelson</authors> <language>en-US</language> <description>AC# class library</description> </metadata> <files> <file src="..\..\build\MyLibrary.dll" target="lib\Net40" /> <file src="..\..\build\MyLibrary.xml" target="lib\Net40" /> </files> </package> 当我用这个命令构build包时 : nuget pack MyLibrary.nuspec 它会产生一个错误。 如果我删除该行: <file src="..\..\build\MyLibrary.xml" target="lib\Net40" /> NuGet.exe成功创buildnupkg。 我甚至可以解压缩包,并validation内容是否正确。 我究竟做错了什么? 如果xml文件进入不同的目标目录?
我收到一条消息,内容如下: 错误1默认情况下禁用软件包恢复function。 为了表示同意,打开Visual Studio选项对话框,点击包pipe理器节点,并选中“允许NuGet在构build过程中下载缺失的包”。 您也可以通过将环境variables“EnableNuGetPackageRestore”设置为“true”来表示同意。 当我去工具 – >选项,我没有看到包pipe理器和下面,我看到包源和最近的软件包。 我没有看到任何地方我可以设置允许Nuget在生成过程中下载丢失的包。
当我从C#项目中使用它的时候,我做了一个NuGet包。 它包含lib/net40目录中的一个DLL,并将该DLL作为参考添加。 既然NuGet支持C ++,那么我怎样才能真正修改我的包,以便可以在C ++ / CLI项目中将该DLL添加为托pipe引用? 我找不到解释这个的任何教程。 如果我尝试只是添加包,我得到以下错误: 您正在尝试将此软件包安装到以“Native,Version = v0.0”为目标的项目中,但该软件包不包含任何与该框架兼容的程序集引用或内容文件。 有人会认为解决scheme是把文件放在lib / native下,但根据http://docs.nuget.org/docs/reference/support-for-native-projects ,这是不支持的。 另外,简单地将DLL直接放在lib下,似乎没有任何作用。 显然,我应该用build / native下的.props或.targets文件来做到这一点,但是我需要将这些文件放到这些文件中才能使其工作?
我有一个自动构build过程,我想扩展,所以我可以build立我通过NuGet分发的库。 目前,运行nuget.exe来创build包是一个手动操作。 什么是设置VS 2010的最佳方式,以便我的NuGet包(* .nupkg)文件是“发布”版本的最终结果? 请记住,我有一些软件包的其他文件(内容和工具)。 而且,在大多数情况下,我有多个项目合并成一个NuGet包来支持.NET 4,Silverlight和Phone 7。 (我应该澄清,现有的“自动化”过程是一个简单的batch file运行器,使用命令行构build解决scheme。) UPDATE 我想刷新这个讨论,因为这个问题还没有解决。 虽然提供的链接@pravin是有帮助的,但它并没有解决我在一个包中包含多个项目以及像PowerShell脚本,configuration和源代码转换等其他内容的事实。 我可以使用的最好的例子是具有.NET 4和Silverlight 5版本的程序集。 这些分发在同一个包里。 我无法使用生成后事件来创build程序包,因为程序包依赖于两个项目。
我发现NuGet自1.4版本开始允许代理设置configuration。 但是,我找不到任何命令行的例子。 我试图运行一些构build和NuGet无法连接。 如何在命令行中configuration代理设置?
有没有办法使用在发布模式下编译的代码创build一个NuGet包? 还是有一些原因,我应该只发布(使本地,在这种情况下)在debugging模式下编译的软件包? 每次我从我的项目目录,我有下面的nuspec文件调用nuget pack ,我只编译在发布模式的代码,它抱怨找不到debugging文件夹中的DLL( "\bin\Debug\SomeProject.dll" )。 如果我在debugging模式下进行编译,这些文件就在那里,它会把它们打包起来。 <?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>$id$</id> <version>$version$</version> <authors>$author$</authors> <owners>$author$</owners> <iconUrl>http://somewhere/project.png</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>$description$</description> </metadata> </package>
我正在创build我的第一个nuget包。 我添加了一个不是最新版本的版本的依赖。 但是,我不想更新到此依赖项的最新版本。 是否可以指示它使用特定的版本? <dependencies> <dependency id="NHibernate" version="3.2.0.3001" /> </dependencies> 当我安装包时,我看到这个: Attempting to resolve dependency 'NHibernate (≥ 3.2.0.3001)'. 这会在安装包时创build以下内容。 <packages> <package id="Iesi.Collections" version="3.2.0.4000" /> <package id="NHibernate" version="3.2.0.4000" /> </packages> 我真的想看到这样的事情:试图解决依赖'NHibernate(3.2.0.3001)'。
我试图添加AutoMapper作为一个项目的依赖项在Visual Studio Premium 2012上使用NuGet,但它失败。 它说: 手术失败 “AutoMapper”已经为“Microsoft.CSharp”定义了一个依赖项。 我能够添加其他依赖项。 我正在使用VS 2012的最新版本的包pipe理器: NuGet包pipe理器2.8.60318.667 任何想法我应该检查什么?
NuGet新手问题 – 我看到在NuGet包文件夹中添加了repositories.config 。 任何人都可以请指导我这个文件的目的是什么? 谢谢!
我在一台特定的个人电脑上使用NuGet已经有一段时间了。 现在,我在VS2010中创build了一个新项目(这是一个使用单页面应用程序模板的MVC 4 Beta项目)。 当我select 工具/库包pipe理器/包pipe理器控制台 控制台窗口打开,但显示错误: 文件C:\ Program Files文件(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Extensions \ Microsoft公司\ NuGet包pipe理器\ 1.7.30402.9028 \ Modules \ NuGet \ profile.ps1无法加载,因为脚本的执行被禁用这个系统。 请参阅“get-help about_signing”了解更多详情。 但是,其他项目仍然可以打开并使用程序包pipe理器控制台。 在每种情况下,VS2010都以相同的用户身份运行。 如果我打开一个命令提示符(使用VS2010正在运行的同一个帐户),启动PowerShell,然后input命令 GET-ExecutionPolicy PowerShell返回 受限 基于Scott Hanselman博客的理解是,如果ExecutionPolicy被限制,脚本不应该运行。 为什么现有的项目能够使用软件包pipe理器控制台,而新的不是? 更新:更改ExecutionPolicy AllSigned 并重新启动VS2010解决了眼前的问题,但我的主要问题是为什么其他项目能够绕过build立的ExecutionPolicy。 VS2010 不作为pipe理员运行。