我正在研究如何使用NuGet在我的组织内分发开发人员框架和工具.我有服务器设置,能够生成包并将它们添加到消费项目中.我现在正在寻求将其扩展到更真实的情况.
在我的例子中,我将有一个框架,我们分发给组织中的所有开发团队.这个框架有一个"核心"类库,然后是一组技术特定的库,如Acme.Web,Acme.Silverlight等.这些库中的每一个都引用了"核心"程序集.
我已经将每个这些程序集打包到它自己的NuGet包中,包括"core",它被设置为其他包中的依赖项.这是因为开发人员在创建类库时可能只选择引用"核心",但在创建Web应用程序时也需要这些类型等.
另一个想法是我可以发布我的"核心"程序集的新版本,而不需要更新所有其他程序包.或者我可以吗?
想象一下我有项目A的情况,添加NuGet包B,它依赖于NuGet包C,然后包C被更新.是否可以在不重建,重新包装和重新发布包B的情况下分发此更新?如果是这样,我是否需要采取任何措施来确保没有版本问题?
我有几个项目的解决方案.我将Fluent nHibernate的几个引用更改为NuGet包(v1.3.0.717).最近我改变了另一个项目,并添加了当前的Fluent软件包,1.2.0.712(早期但当前),我的应用程序将构建但不运行.当前版本指向nHibernate v3.1.0.4,但在某处它与v3.2.9.4000冲突,而前者版本的Fluent引用了该版本.
Inner Exception
{"Could not load file or assembly 'NHibernate, Version=3.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"
NHibernate, Version=3.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4"}
Exception
Could not load file or assembly 'NHibernate, Version=3.2.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Run Code Online (Sandbox Code Playgroud)
如何清理此项目并使其再次运行?
我有一个简单的课程,我喜欢在进行单元测试时使用.我想创建一个NuGet包,这样我就可以轻松地使用它并在我的解决方案之间分配更新.
我是否必须创建它的程序集,或者是否可以创建一个仅包含源文件的NuGet包,然后将其与其他所有内容一起编译?如果是这样,您将如何配置该包?
我试图根据msdn的这篇文章实现Web浏览器. http://code.msdn.microsoft.com/vstudio/Professional-WebBrowser-dac9c5d0#content 但是我在第4.2点添加NuGet功能时遇到了麻烦.我通过Manage NuGet Packages成功安装了DockPanel Suite.此应用程序是Visual Studio 2012中的WinForms.在此安装之后,我应该在工具箱中看到DockPanel组件,但我找不到它.我尝试了一切,但仍然没有.
我正在将项目从ASP.NET迁移WebForms到MVC.新解决方案将在现有页面上运行,ASPX而新功能将使用MVC实现.
因此代码更改已经实现.我理解MVC包含NuGet包,并且看到packages.config文件 也理解它有助于跟踪版本但现在对使用它不感兴趣(感觉它占用了额外的空间).
所以,如果我从解决方案中删除packages.config会损害我的MVC应用程序吗?
直到最近我才把我的项目的.NET版本从4.5降级到4.0并且Visual Studio开始抱怨某些NuGet软件包需要EntityFramework重新安装再次工作,我从未摆弄过NuGet .所以我去了PM> Update-Package -reinstall EntityFramework,我被分类了.
所以,既然你知道我是如何实现这一点的,那么这些都是我的问题.
EntityFramework在我的解决方案中添加NuGet包.NuGet是否发现我的解决方案需要什么,并自动添加它们?在我的解决方案中,我正在使用EntityKey和EntityState枚举,这需要using System.Data.Entity&using System.Data.Entity.Core.当抱怨没有找到这两个枚举时,Visual Studio添加了这两个命名空间,就像你使用一些LINQ一样,而你却没有using System.Linq.在我的c#应用程序中,我想将SQLite 与Dapper(on SqliteConnection)一起使用.
当前nuget System.Data.SQLite版本的问题是还加载了与EntityFramework相关的依赖项,但它们不是必需的.
我正在尝试在Linqpad Nuget管理器中安装Active Directory身份验证库,我收到路径/位置太长的消息:
我试图通过添加LinqPad.nuget.config的存储库路径设置来更改安装位置,现在看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="C:\Ng" />
</config>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是,程序包仍然安装在user/appdata文件夹中.
我怎样才能解决这个问题?
我看到获得已安装的巧克力包列表的唯一方法是使用"choco version all"输出如下内容:
You have SourceTree v1.9.1.1 installed. Version 1.9.6.1 is available based on your source(s).
You have sysinternals v2016.07.04 installed. Version 2016.08.29 is available based on your source(s).
Chocolatey can upgrade 5/9 packages. 0 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Can upgrade:
- 7zip.install v16.02.0.20160811
- chocolatey v0.10.0
- sourcetree v1.9.6.1
- 7zip v16.02.0.20160811
- sysinternals v2016.08.29
Run Code Online (Sandbox Code Playgroud)
对于交互式控制台输出很好,但是为了解析创建报告它很糟糕.有什么方法我可以用xml或json或一些标准格式获取此信息,而不是自己解析上面的?
我正在尝试创建一个.NET 4.6.1类库,并使用此nuget包:
https://www.nuget.org/packages/NLua/
当我点击安装时,我收到以下消息:
Package restore failed. Rolling back package changes for 'ClassLibrary1'.
Run Code Online (Sandbox Code Playgroud)
如果我在同一解决方案中尝试使用Web应用程序进行相同的安装,则安装成功完成.
class-library nuget-package nlua .net-4.6.1 visual-studio-2017
nuget-package ×10
nuget ×7
c# ×3
.net ×1
.net-4.6.1 ×1
asp.net ×1
asp.net-mvc ×1
chocolatey ×1
dapper ×1
linqpad ×1
nhibernate ×1
nlua ×1
powershell ×1
sqlite ×1
toolbox ×1
winforms ×1