Tag: nuget

升级到.NET 4.7后,“未定义或导入预定义类型System.ValueTuple”

我正在将现有的解决方案从.NET 4.6.2升级到.NET 4.7。 此解决方案依赖于几个针对.NET 4.6.2的nuget包,因此依赖于nuget System.ValueTuple包。 但升级后,我收到了大量这些构建错误: Error CS8179 Predefined type ‘System.ValueTuple`2’ is not defined or imported 我无法删除System.ValueTuple包,如此处的注释所示,因为其他包依赖于它。 (如果我强迫它,它们似乎会爆炸。) 有什么建议? 更新8/8/17 我已经发现我可以删除System.ValueTuple包,我可以得到解决方案来编译。 但是,我在解决方案中有十几个NuGet包似乎是针对.NET 4.6.2,因此需要System.ValueTuple作为依赖。 我可以安装那些,然后强制删除System.ValueTuple包,但如果任何这些包有更新,我安装更新 – 然后再次安装System.ValueTuple包,系统停止构建,直到我删除重新打包。 换句话说,我可以使一切工作 – 但它似乎很尴尬和kludgy。 当然有更好的方法来解决这个问题吗?

如何跨多个c#项目强制执行相同的nuget包版本?

我有一些使用几个NuGet包的小型C#项目。 我希望能够自动更新给定包的版本。 更重要的是:如果项目使用与其他项目不同的版本,我希望收到警告。 如何在多个C#项目中强制实施相同的版本依赖?

如何从nuget feed以编程方式获取nuget包版本?

首先,在所有Nuget代码中,我试图弄清楚要引用哪一个。 主要问题是,给定一个Nuget包名称,是否有一种编程方式从nuget feed中检索版本以及一般消费的最新版本? 例如,给定ILMerge的包名称,获得2.13.307的最新包版本会很不错。 //pseudo code, makes a lot of assumptions about nuget programmatic interfaces PackageRef currentVersion = nugetlib.getpackageinfo(args[0]); Console.WriteLine(“Package Id: ‘{0}’:”, pkg.Id); Console.WriteLine(” Current version: {0}”, pkg.Version); Console.WriteLine(” Available versions: {0}”, String.Join(“,”,pkg.Versions.Select(_=>_)));

通过nuget包添加代码分析规则集

我正在尝试构建一个NuGet包,它可以自动添加我们公司的代码分析字典并可以更新。 规则集已添加到内容文件夹中,现在我想使用install.ps1脚本在项目文件中添加规则集。 我想出去的方法是使用envDTE,但我找不到很多有用的文档,除了这个压倒性的对象图,我找不到CodeAnalysisRuleset节点。 http://msdn.microsoft.com/en-us/library/za2b25t3(v=vs.100).aspx 我在追求正确的道路吗? 是否有关于如何在NuGet powershell中使用envDTE的相关教程/文档? 如何运行/调试我的安装脚本而不必将其实际添加到包并针对项目安装它? 边注 虽然@Nicole Calinoiu表现出更好的方式,但这些信息可能会在以后派上用场: foreach ($config in $project.ConfigurationManager){ $config.Properties.Item(“CodeAnalysisRuleSet”).Value = “myruleset.ruleset” }

在一个解决方案中从多个项目创建一个NuGet包

我有一个我正在研究的解决方案,它包含4个类库项目( A , B , C , D )。 A和B可以被认为是解决方案中的顶级项目。 A和B参考C , D独立。 这四个项目代表了我处理自动化工作流程的一组服务。 它们都是密切相关的,只会在一个位置(服务管理器)使用,所以我不想将它们分成不同的解决方案。 我的问题是我想创建一个包含所有4个库的NuGet包,而不必全部构建它们并手动收集它们的DLL。 我知道我可以通过让A或B引用剩余的项目来实现这一点,但这不是真正的关系,我觉得应该避免。 我已经做了很多关于这个问题的搜索,除了手动收集DLL并自己构建包之外,我找不到解决方案。 有没有办法达到我想要使用NuGet的function/能力的结果? 注意 :如果标签不清楚我正在使用VS2010和TeamCity构建服务器。 如果它是相关的,我也通过Stash服务器使用Git。 编辑 :我刚刚意识到这可能很重要,值得一提。 这些项目确实引用了我需要标记为依赖项的其他NuGet包。

NuGet包应该支持哪些.NET版本以最大化其可用性和function?

TL; DR: 鉴于:我编写了一个具有相对便携function的库(例如, Left.Pad.©.dll )。 我想通过NuGet让它可用。 要求:如果有人想在任何操作系统的任何版本上通过在任何 IDE或任何代码编辑器中编写代码来安装任何更新的任何版本的任何平台上使用我的库,他们应该能够这样做。 问题:实现该目标的最小 NuGet 目标框架是什么? 奖金问题:如果存在任何不应该被定位的“死”框架,或者在选择目标框架时应该考虑的其他内容,您也可以提及它。 思想(旧版): NuGet包支持多个.NET Framework版本和配置文件 ,例如,包可以提供net20,net30,net35,net40,net45,sl3,sl4,sl5等版本。 但是,假设包的function并不总是存在差异 ,提供大量版本将浪费构建时间和包大小,并导致不必要的复杂性。 另一方面,仅为最低支持的Framework版本提供软件包可能会导致function丢失,例如.NET 4支持多个CLR版本的进程内并行执行,但以前的版本不支持,因此此function如果只提供.NET 3.5的版本(我不确定;我从未使用它并且不知道细节),将会丢失。 如果提供了PCL版本,逻辑很简单我假设:只排除PCL涵盖的版本。

System。*引入NETStandard.Library依赖时引用的麻烦

在一个包含52个项目(所有net462)的大型解决方案中,我们的一些依赖项的最新版本现在仅为.NET标准构建。 因此,它们依赖于NuGet包NETStandard.Library ,而这反过来又拖累了很多其他4.3.x版本的System.*包,它们通常位于.NET Framework本身。 因此,一些项目引用packages文件夹中的System.*库,而其他项目引用.NET Framework中的System.*库。 这导致众所周知的运行时问题,fe: 消息:System.IO.FileLoadException:无法加载文件或程序集’System.Net.Http,Version = 4.1.1.2,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040) 深入研究NETStandard.Library包的依赖关系,我们可以看到这些包中也存在同样的问题: System.Collections中。* System.ComponentModel。* System.Console System.Globalization。* System.IO。* System.Linq的。* System.Net。* System.ObjectModel 的System.Reflection。* System.Resources.ResourceManager System.Runtime。* System.Text。* 的System.Threading。* 的System.Xml。* 通常这可以通过在其他项目中安装相同的软件包来解决,但我们在这里处理了很多项目和很多软件包,我不想盲目地将所有这些依赖项添加到所有52个项目中。 这让我想知道是否有人知道从这种情况中恢复的简单方法,并使所有项目从NuGet包文件夹引用正确的包/ DLL,如果它们当前使用.NET Framework内部的那个。 可以在此处找到针对net462和net471的简单VS解决方案来演示此问题

RegAsm无法使用Microsoft.Bcl.Async进行.NET 4.0程序集

使用Microsoft.Bcl.Async的.NET 4.0程序集的RegAsm失败,并显示以下消息: RegAsm:错误RA0000:无法加载文件或程序集 ‘System.Threading.Tasks,Version = 1.5.11.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 找到的程序集的清单定义不匹配 assembly参考。 (HRESULTexception:0x80131040) 我的程序集( MyAssembly.dll )使用最新的Microsoft.Bcl.Async NuGet包,这是项目的packages.config : 它捆绑了System.Threading.Tasks.dll版本:2.6.6.0,它是该NuGet包的一部分。 目标系统上没有其他System.Threading.Tasks.dll (Win7 with .NET 4.0但没有.NET 4.5),GAC和其他任何地方都没有。 这是MyAssembly.dll.config ,它具有System.Threading.Tasks正确bindingRedirect元素: 我的问题: RegAsm不使用MyAssembly.dll.config吗? 如何使其工作以解决bindingRedirect指令?

TFS 2015 SDK缺少Microsoft.WITDataStore64.dll

我试图切换到TFS 2015 SDK dll(版本14)有几个原因。 首先,它们是nuget,第二,2013 SDK dll(版本12)需要在IIS中翻转32位标志。 我下载了nutget包 ,命名空间全部与现有的12版命名空间对齐 。 一切都编译好,本地部署没有错误。 但是,当我尝试使用WorkItemStore服务加载项目时。 TfsTeamProjectCollection collection = new TfsTeamProjectCollection(URL); var service = collection.GetService(); 我明白了: 其他信息:无法加载DLL’Microsoft.WITDataStore64.dll’:找不到指定的模块。 (HRESULTexception:0x8007007E) 当我在IIS中切换回32 bt标志时,我得到: 其他信息:无法加载DLL’Microsoft.WITDataStore32.dll’:找不到指定的模块。 (HRESULTexception:0x8007007E) 注意:这是所有工作代码,我所做的就是删除对GAC程序集的引用并添加NUGET包。 根据微软的说法,nuget软件包应与TFS 2013配合使用,并为2013 SDK用户提供服务 现有的Windows应用程序利用旧版本的TFS Client OM。

无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common”或其依赖项之一

我搜索谷歌这个,无法找到问题的解决方案。 我的网站引用了引用企业库数据访问组件的DAL(自定义DLL)。 我从NuGet Package Manager添加了企业库,当我尝试构建网站时,会弹出以下编译错误: 错误44无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common”或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配 我尝试在Enterprise Library dlls的DAL中设置Copy Local = True ,并且dll与DAL dll一起传输到网站的Bin目录,但仍会弹出错误。 任何人都可以指导我这….