我正在尝试为一对内部C#项目(最终会有更多,但是从这两个开始)生成NuGet包,它们被其他解决方案/项目等使用。这两个内部C#项目都引用了其他NuGet包(特别是Enterprise Library Logging)。我正在使用Nuget的功能来从CSPROJ文件中构建包,以简化我的工作流程。问题是Nuget.Exe工具不能识别项目引用的包作为依赖项。为了给出完整的解决方案布局:
我使用的命令行是:
命令行输出的相关部分如下:
我本来期望看到“依赖项:Project1、Enterprise Library Logging等等”,需要注意的是,我必须在Project1和Project2中都添加nuspec文件才能正确处理项目间依赖关系。不过,nuspec文件实际上是空白的,除了占位符值之外。
我在NuGet问题跟踪器上找到的最接近的内容是 http://nuget.codeplex.com/workitem/3097,但那有点不同,而且那里提出的解决方案似乎都没有起作用。
有人遇到过类似情况并成功解决吗?
我正在使用NuGet 2.7和Visual Studio 2012。
Solution:
Project 1
Refs to some NuGet packages off the global repository (Enterprise Library, etc etc).
(has a packages.config file that explicity lists them all)
Project 2
Refs to some NuGet packages off the global repository (Enterprise Library, etc. etc).
Project ref to Project 1
(has a packages.config file that explicity lists them all)
我使用的命令行是:
nuget pack Project2.csproj -IncludeReferencedProjects -verbosity detailed
命令行输出的相关部分如下:
Found packages.config. Using packages listed as dependencies
Id: Project2
Version: 1.0.0.0
Authors: abc
Description: abc
Dependencies: Project1 (= 1.0.0.0)
Added file 'lib\net35\project2.dll'.
我本来期望看到“依赖项:Project1、Enterprise Library Logging等等”,需要注意的是,我必须在Project1和Project2中都添加nuspec文件才能正确处理项目间依赖关系。不过,nuspec文件实际上是空白的,除了占位符值之外。
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>abc</authors>
<owners>abc</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>defr</description>
<copyright>Copyright 2013</copyright>
</metadata>
</package>
我在NuGet问题跟踪器上找到的最接近的内容是 http://nuget.codeplex.com/workitem/3097,但那有点不同,而且那里提出的解决方案似乎都没有起作用。
有人遇到过类似情况并成功解决吗?
我正在使用NuGet 2.7和Visual Studio 2012。