lib 文件夹外的 NuGet 程序集

标签 nuget nuget-package

我要在这里提出几个问题...首先,使用 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/

相关文章:

mysql - 无法从 Nuget Manager 安装 MySQL.Data

linq - NuGet 上 "System.Linq.Dynamic"、 "Dynamic Expression API"和 "DynamicLINQ"之间的区别?

resharper - Visual Studio 中的包和程序集之间有什么联系?

c# - RavenDB.Client.Embedded 在我尝试构建它后消失了

localhost - 通过 localhost 在本地托管 Nuget Gallery,无法从 Visual Studio 库包管理器访问其提要 - 返回 404 Not Found

.net - 包管理器控制台不工作

c# - 创建 Xamarin 插件/用户控件库

c# - 系统.IO.FileLoadException : Could not load file or assembly Log4net

visual-studio - NuGet 在 VS 2013 中保持 'Retrieving Information' 或 'No results found'

.net - 如何在不重建项目的情况下使用 msbuild 创建 nuget 包?