我要在这里提出几个问题...首先,使用 NuGet 是否可以从几个 DLL 创建一个包?没有 Visual Studio 项目,只有命令行和几个预编译的 DLL 文件。
其次,假设这是可能的,为什么我不断收到“Assembly Outside of the libfolder”警告?我已尝试了所有我能想到的方法来获取关联的程序集,以将其自身添加为 NuGet 包内的引用。
我的文件结构如下所示
Root
- File1.dll
- lib
- File2.dll
- File3.dll
当我告诉 NuGet 使用这样的 .nuspec 打包它时
<?xml version="1.0"?>
<package >
<metadata>
<id>File1.dll</id>
<version>1.0.0</version>
<authors>thisguy</authors>
<owners>thisguysmom</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>This is some library</description>
<releaseNotes>Porting to NuGet</releaseNotes>
<copyright>Copyright 2012</copyright>
<references>
<reference file="File2.dll" />
<reference file="File3.dll" />
</references>
</metadata>
</package>
我收到了该警告。根据我所读到的内容,我什至不必在任何项目中定义引用节点,因为 lib 文件夹项目应该自动添加为引用?
有人理解这个 NuGet 困惑吗?
最佳答案
我刚刚遇到了这个问题。 Nuget 期望的结构如下所示:
root
- lib
- net40
- File1.dll
- File2.dll
- File3.dll
net40 或 net20 或 net45 根据您的 .net 版本而定。
运行
nuget pack yourlibrary.nuspec
将其打包。
这将批量打包目录并将其放入 nupkg 中。此时错误消息将消失。
关于lib 文件夹外的 NuGet 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11855428/