Tag: nuget package

我是否必须包含所有System.Collections.Immutable依赖项?

我刚刚从(较旧的) Microsoft.Bcl.Immutable NuGet包切换到System.Collections.Immutable并且很惊讶在我的项目中找到所有这些新的包依赖项: System.Collections System.Diagnostics.Debug System.Globalization System.Linq System.Resources.ResourceManager System.Runtime System.Runtime.Extensions System.Threading 它们被列为NuGet包的依赖项,因此它们有权在那里,但它们显然已经安装在我的PC和我的目标环境(Azure btw)上,因为它们随框架一起提供。 我的项目中已经有了大量的软件包,如果可能的话,我希望避免这8个软件包造成的额外开销(并且不会在脚下拍摄自己)。 删除这些依赖项是否安全? 我现在是否必须在整个项目中使用这些软件包,因为它们可能与已安装的版本不同,我的项目的某些部分现在可能使用了错误的软件包? (由于某些DLL链接疯狂?) 编辑:只是为了完整性,因为之前有一个评论:依赖项是实际的包(不是命名空间),必须下载,我的目标是使用.NET 4.6进行编译,在VS2015中工作。 虽然有些东西已经过时且包装不需要正常加载,但这完全有可能吗?

从Nuget包中提取的自动本机和托管DLL

这让我疯狂了几个月,我仍然无法实现它。 我的托管库是从Nuget包中提取的,但不是本地的。 我们有一堆由其他公司提供的托管和本地库。 我们有x86和x64版本。 为了在ASP.NET Core项目中使用它们,我必须创建一个Nuget包。 我的架构是: 我更改为仅针对完整.NET Framework的ASP.NET Core类库。 这个项目引用了我的Nuget包 一个ASP.NET Core网站,也是针对完整的.NET Framework并引用类库 当然,最后,我需要将我的本机库提取到网站的正确运行时文件夹中(例如: \bin\Debug\net461\win7-x64 )。 目前我的解决方案是: 将本机库放在build文件夹中 创建一个targets文件,将它们复制到$(OutputPath) (甚至不是运行时文件夹) 将一些MsBuild命令添加到我的网站的xproj ,以获取$(USERPROFILE)\.nuget\packages\文件夹中的目标文件并执行它 手动将现在在bin文件夹中提取的bin机DLL复制到runtime DLL 我试图使用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用于托管,但我不是百分之百确定。 (我也应该使用build文件夹吗?) 我已经尝试了几件事(我记不起尝试次数,正如我所说的几个月的头痛……)就像这样的架构 (我不明白这里有什么build/native和build/native文件夹的意义runtimes ) 我还尝试使用此处描述的.NET框架版本结构用于托管库。 这似乎也是解决方案的一部分 创建程序集引用时,编译器会忽略该体系结构。 这是一个加载时间的概念。 如果存在,加载程序将更喜欢体系结构特定的引用。 可用于生成AnyCPU程序集的一个技巧是使用corflags从x86程序集中删除体系结构。 EG:corflags / 32BITREQ- […]