jss*_*ngh 34 visual-studio nuget
我相信我们中的许多人都遇到过这个问题,不知怎的,我在任何地方都遇到了问题.
我在许多项目中都有一个共享库(Common.Infrastructure.dll),我使用NuGet Server内置的TeamCity来托管这个库.该库内部依赖于NuGet包,如Fluent Nhibernate,Log4net,StructureMap等).
很简单,在需要此共享依赖项的项目中执行"Install-Package Common.Infrastructure"也会将Fluent NHibernate,log4net,SM等添加为项目的"引用".我不会直接使用Common.Infrastructure的这些依赖项,但显然最终需要它们在输出(bin/debug)文件夹中.
有没有办法不使用内置的nuget(nuspec)支持引用这些依赖项?
Ale*_*ion 68
Install-Package命令有一个标志来忽略依赖项.例:
Install-Package Common.Infrastructure -IgnoreDependencies
Run Code Online (Sandbox Code Playgroud)
请注意,他的实际问题是如何创建一个不添加依赖项的包,而不是如何安装没有依赖项的包.
使用Nuspec,您可以显式控制哪些包是依赖项,以及目标项目引用包中的哪些程序集.但是,我认为没有办法完全按照NuGet的要求进行操作,因为没有办法向Visual Studio指出应该将程序集复制到bin目录而不将其添加为项目引用.
我认为你的问题是将太多功能集中到一个程序集中的症状.我建议您将Common.Infrastructure.dll拆分为单独的程序集,以实现功能的各个方面.就像是:
当然,您将其分解为的精确程序集将取决于Common.Infrastructure.dll中的功能以及您如何使用它.为每个程序集创建单独的程序包后,您可以选择在给定项目中引用哪些程序包,并将其限制为您真正需要的方面和依赖项.
归档时间: |
|
查看次数: |
11743 次 |
最近记录: |