如何相对于解决方案根目录复制Nuget内容文件
我已经在我当前的项目上创建了一个DAL,它是持久性无关的,并且有一个需要直接引用的契约dll,然后是由我们的IoC容器扫描的实现dll,以解析与契约dll中定义的接口和POC相关的ORM特定实现和映射。我希望将实现DLL复制到[solution root]\lib目录。我已经创建了一个包,并将实现DLL加载到内容文件夹中,当安装包时,它们最终位于[project root]\lib中如何相对于解决方案根目录复制Nuget内容文件,nuget,nuget-package,Nuget,Nuget Package,我已经在我当前的项目上创建了一个DAL,它是持久性无关的,并且有一个需要直接引用的契约dll,然后是由我们的IoC容器扫描的实现dll,以解析与契约dll中定义的接口和POC相关的ORM特定实现和映射。我希望将实现DLL复制到[solution root]\lib目录。我已经创建了一个包,并将实现DLL加载到内容文件夹中,当安装包时,它们最终位于[project root]\lib中 我的问题是如何让Nuget将我的实现DLL复制到[solution root]\lib?我找到了一种似乎可行的方
我的问题是如何让Nuget将我的实现DLL复制到[solution root]\lib?我找到了一种似乎可行的方法
[solution dir]\lib
Company.Dal
Company.Dal.Ninject
Company.Dal.StructureMap
然后消费者将安装使用他们使用的相同容器的软件包,这将负责将所需的DLL安装到[solution dir]\lib
,并配置容器以使用这些DLL
专业人士
@Mrvcman先生,我继续写了一篇博客文章,记录了我是如何做到这一点的:我发现了一种似乎可行的方法
[solution dir]\lib
Company.Dal
Company.Dal.Ninject
Company.Dal.StructureMap
然后消费者将安装使用他们使用的相同容器的软件包,这将负责将所需的DLL安装到[solution dir]\lib
,并配置容器以使用这些DLL
专业人士
@MrMVCMan先生,我继续写了一篇博客文章,记录了我是如何做到这一点的:我已经创建了一个通用的nuget软件包,它解决了您的问题,但方法不同。它不是将包复制到lib文件夹中,而是在构建时将它们复制到构建输出文件夹中 您的nuspec文件可能如下所示:
<files>
<file src="output\Implementation.dll" target="output\Implementation.dll" />
<file src="lib\Implementation.Contract.dll" target="output\Implementation.Contract.dll" />
</files>
将此nuget包添加到项目中时,Implementation.Contract.dll get将作为项目的引用添加,但不会将该实现添加到项目中
有关完整示例,请阅读我的博客:
我创建了一个通用的nuget软件包,它解决了您的问题,但方法不同。它不是将包复制到lib文件夹中,而是在构建时将它们复制到构建输出文件夹中 您的nuspec文件可能如下所示:
<files>
<file src="output\Implementation.dll" target="output\Implementation.dll" />
<file src="lib\Implementation.Contract.dll" target="output\Implementation.Contract.dll" />
</files>
将此nuget包添加到项目中时,Implementation.Contract.dll get将作为项目的引用添加,但不会将该实现添加到项目中
有关完整示例,请阅读我的博客:
谢谢Daniel,您对NuGet的扩展非常有效:文件被复制到输出文件夹,而不是作为参考添加。干杯谢谢Daniel,您对NuGet的扩展非常有效:文件被复制到输出文件夹,而不是作为引用添加。干杯403链接。我认为答案是不完整的,不能在链接上找到。我认为答案不完全是无法找到的。