Tag: nuget

为具有多个项目的解决方案创建nuget包

我们目前正在构建包含多个项目的解决方案。 我们有这样的事情: – Common – Logging – Logging.NLog – Threading 所以Logging.NLog依赖于Logging,Logging on Common等。 当我们打包Logging.NLog时,我希望nuget能够发现Loggin和Common dependecies。 此刻,我用Common创建了一个包,然后在Logging中我安装了包Common install-package Common 但每当我对Common进行修改时,我都必须更新包,它们是由我们的连续集成系统(Hudson)创建的,所以当我们开发时它非常烦人。 我想简单地有一个项目参考(添加引用 – >项目…),并且nuget无论如何都会发现依赖项。 有没有办法实现它?

在构建后事件上更新本地nuget包

我的本地nuget库存储库分别用于我的个人和工作相关的类库。 我已经为不再开发的库创建了一些nuget包。 我只为他们这样做,因为我不知道如何在项目构建后自动更新它们。 我认为所有的工作都是由nuget命令行和Visual Studio命令提示符完成的。 所以我可以轻松地完成我需要的工作(当然,我会完全了解命令而不是!) 基本上我希望在项目的post-build事件上执行以下任务。 在项目构建上: 将项目dll复制到特定文件夹(nuget包的lib文件夹) 更新nuspec文件以获取新文件版本(我的项目正在增加每个版本的文件版本) 使用新文件版本创建新的nupkg文件 Phil Haack展示了这个function,但据我所知,它仍然是原型。 所以我的要求是上面的。 有没有其他人完成这个?

如何使用NuGet.Core创建NuGet包?

我想创建一个使用NuGet包NuGet.Core的应用程序。 它有一个名为PackageBuilder的类,使其成为可能。 有没有可用的样本/教程/文档?

在app.config中为类库做绑定重定向会做什么吗?

我经常使用的VS解决方案包括一个可执行项目 (控制台应用程序,Web应用程序)和许多可执行文件引用的类库项目 。 在使用NuGet并安装软件包时,通常会为每个项目创建一个app.config文件,通常只包含合并重定向列表以合并引用程序集的版本。 有时候会有一些第三方库特定的内容(比如Entity Framework配置部分),但是现在让我们把它放在一边。 当我构建解决方案并使用主可执行项目的二进制文件时,我看到构建输出中的所有类库项目程序集以及相应的*.config文件( app.config文件在构建时被重命名为AssemblyName.config ) 。 启动主可执行文件时,类库程序集的配置文件是否有效? 或者只是可执行文件的app.config文件在这种情况下有效? 如果在某些类库项目上设置了一些绑定重定向,并在主可执行项目上设置了一些不同的绑定重定向 – 这些如何组合,哪些优先? 我试图在线研究这个,从我读过的内容来看,它看起来像非可执行程序集的app.config文件是无用的(关于绑定重定向)。 有人可以确认这一点或详细说明该主题吗? 如果是这样的话,如果它们只包含绑定重定向,那么在类库中创建NuGet创建的这些app.config文件实际上是不可取的吗? 我觉得NuGet不应该为类库项目创建那些绑定重定向,因为它只会增加对实际应用的设置的混淆。 我在这个主题上找到了这些现有的Stack Overflow问题,但是他们接受的答案实际上是矛盾的,即使它们被标记为彼此重复 。 为什么NuGet在NuGet包更新期间将app.config与assemblyBinding一起添加到LIBRARY项目? 是否需要bindingRedirect .config文件或应用程序中的所有程序集? 第一个问题的接受答案提到app.config文件实际上是在编译时使用的,这意味着它们可能有效。 像MSDN和MSBuild源代码这样的来源被引用作为它在编译期间使用的certificate。 不幸的是,我对MSBuild的熟练程度不足以理解它是如何被使用的,以及它是否真的是一个有效的参数。 任何人都可以描述一个示例场景来certificate带有绑定重定向的类库的app.config可以做什么吗?

NuGet Pack – 针对nuspec或csproj打包的不同问题

我在这里遇到了一些问题。 我正在使用NuGet和TeamCity。 我已经尝试使用nuspec文件进行NuGet pack ,我也尝试过使用csproj文件。 每个都有自己的问题: 在TeamCity中,如果我将nuspec文件与NuGet pack一起使用,则nuspec文件中的$version$标记不会更新。 如果我使用csproj文件将TeamCity更改为NuGet pack , 则会更新$version$标记,但是生成的包只包含EXE,并且缺少所有依赖的程序集。 使用nuspec文件时不会发生此问题。 有没有办法让两全其美? 我想要更新$version$ token(在使用csproj时有效),我希望依赖程序集包含在包中(使用nuspec时可以正常工作)。 注意:我希望有一个解决方案不涉及创建PowerShell脚本,或者将代码/项目与构建技术(TeamCity)相结合的东西。

Visual Studio 2017中的Nuget Pack命令

我有一个.core解决方案,其中需要包含一些项目,据我所知,praxis在.core中使用Nuget。 对于那些项目,我在Properties-> Package下选中了“在构建时生成包”。 问题是nuget-package放在\ bin \ Debug \下…有没有办法定义覆盖属性,所以它可以放在其他地方? 我试图输入nuget.config: 没有运气。 我也尝试过.csproj: netcoreapp1.1 True some path 我曾尝试使用OnPostBuild将文件从其位置复制到另一个,但是在postbuild之后似乎触发了package命令…另一个问题是宏中使用的参数不是由系统设置的,它们只是运行时的emty字符串。 我也尝试从命令promt运行,因为在使用.core和Nuget的Visual Studio 2017中感觉非常麻烦。 当从命令promt(nuget pack)运行时,我获得非信息性信息:“无法将System.String类型的对象转换为类型NuGet.Frameworks.NuGetFramework” 我可以做些什么来将我的所有nuget包放在另一个目录中,而不是默认设置,因为Visual Studio 2017正在使用…我可以以某种方式覆盖此设置吗? 谢谢!

如何在NuGet v3 API中为本地包提供程序集(dll)?

介绍 大家好,我找到了一种使用NuGet v3 API查找本地NuGet包的方法。 我不知道我是否以正确的方式做到了,但它确实有效……没有很多文档。 我找到的唯一有趣的文档是这个博客 。 所以,我不知道我是否以正确的方式做到了。 我试着在官方的NuGet GitHub上找到关于我的问题的一些问题。 我甚至没有在Google上发现任何有趣的内容。 所以,我保留了我的代码,当我用NuGet v3 API搜索本地包时,我试图找到一种获取程序集(dll)的方法。 我尝试了很多NuGet类,但似乎没有什么能回复我的预期。 某些函数返回包信息,但缺少AssemblyReferences属性。 我知道在NuGet v2 API中,搜索函数返回一个IPackage 。 现在,在v3中,它将返回一个IPackageSearchMetadata或LocalPackageInfo具体取决于您调用的函数。 所以,他们改变了返回的对象。 那么,有没有办法像Nuget V2 API中的IPackage一样获得AssemblyReferences ? 我不知道这是不是问题,但是我在GitHub上发布了它。 使用Nuget V2 API的代码示例(正常工作) var rootPath = @”pathWhereNugetPackageAre”; LocalPackageRepository repo1 = new LocalPackageRepository(rootPath); var newtonsoft = repo1.FindPackagesById(“Newtonsoft.Json”).First(); //return the package and the assembly property because it’s v2 使用Nuget V3 […]

使用protobuf-net获得ProtoGen

我正在尝试使用protobufs序列化一些类。 我使用NuGet安装了protobuf-net,使用属性正确装饰了我的代码,一切运行都很顺利。 但是,最终消息将在C#中创建,但在其他环境中消耗,因此我需要从C#创建.proto文件,或者 – 对我来说更合理 – 从.proto文件创建C#代码。 无论我做什么,我都找不到安装在我电脑任何​​地方的ProtoGen.exe。 我也找到了这个旧post ,但是当我创建.proto文本文件时,没有发生任何类似的事情。 手动添加ProtoBufTool也不起作用。 我错过了什么?

Nlog给出exception可能的解释是缺少零arg和单个arg Common.Logging.Configuration.NameValueCollection构造函数

我将nlog添加到我的应用程序和测试项目中。 它们都是同一解决方案的一部分。 从内部应用程序nlog工作。 但是从测试项目得到以下exception: Unable to create instance of type Common.Logging.NLog.NLogLoggerFactoryAdapter. Possible explanation is lack of zero arg and single arg Common.Logging.Configuration.NameValueCollection constructors 我的Nlog配置如下: packages.congfig文件

如何在.Net Core 1.0中使用XPathSelectElement?

在.Net 4.X ,此扩展方法位于System.Xml.XPath下。 但是,我想知道如何在.Net Core中找到/使用它? 我有一个类库。 移植工具不显示有关XPathSelectElement任何信息。 或者.Net核心中的任何替代品? 非常感谢!