Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否需要添加DLL';标记为nuget lib文件夹的依赖项的_Nuget_Nuget Package - Fatal编程技术网

我是否需要添加DLL';标记为nuget lib文件夹的依赖项的

我是否需要添加DLL';标记为nuget lib文件夹的依赖项的,nuget,nuget-package,Nuget,Nuget Package,我有一个包和nuspec文件,我通过将有关程序集的dll复制到一个lib文件夹中来构建它,该文件夹与我的nuspec文件位于同一文件夹中。这一切都很好,没有问题 我有第二个包,它通过nuget引用第一个包,所以为了构建它的包,我遵循相同的过程,但在nuspec文件中添加了依赖项元素。当我从release复制到lib时,它还需要依赖的dll 因为这被标记为依赖项,所以我可以从by lib文件夹中删除它(我希望它通过nuget下载,而不是包含在当前包中)。我不确定我是否准确地了解了您的场景,但通常我

我有一个包和nuspec文件,我通过将有关程序集的dll复制到一个lib文件夹中来构建它,该文件夹与我的nuspec文件位于同一文件夹中。这一切都很好,没有问题

我有第二个包,它通过nuget引用第一个包,所以为了构建它的包,我遵循相同的过程,但在nuspec文件中添加了依赖项元素。当我从release复制到lib时,它还需要依赖的dll


因为这被标记为依赖项,所以我可以从by lib文件夹中删除它(我希望它通过nuget下载,而不是包含在当前包中)。

我不确定我是否准确地了解了您的场景,但通常我可以说:根据您创建nuget包的方式,您甚至可能不需要指定依赖项。给定具有以下结构的Visual Studio解决方案:

* Solution1
  - Project1
    * projectfile1.csproj
      - using external libraries through NuGet
      - project reference to Project2
    * nuspecfile1.nuspec
  - Project2
    * projectfile2.csproj
    * nuspecfile2.nuspec
如果运行
nuget pack projectfile1.csproj
,则Project1中包含的任何nuget软件包将自动作为依赖项包含在nuget软件包中,即使您尚未在nuspec文件中指定依赖项。这些依赖关系还将包括创建包时外部库的版本

截至,还有一个新功能可以自动解决同一解决方案中项目之间的依赖关系。使用v2.5,您可以运行以下命令:

nuget pack projectfile1.csproj -IncludeReferencedProjects

这也将导致对Project2的NuGet依赖性。如果Project2没有作为NuGet包公开(即它没有nuspec文件),Project2的dll将作为文件包含在Project1的NuGet包中。

在进行一些测试后,添加依赖项并不要求dll位于库中。依赖项假定它将由Nuget解决。这可以通过通过nuget GUI创建一个新的包文件并添加一些依赖项来确认。请注意,它们在保存后不会显示在lib文件夹中