首先,我创建.nuspec文件...
C:\code\MySolution>.nuget\nuget.exe spec MyProject\MyProject.csproj
我编辑生成的.nuspec
文件,使其最简化,没有任何依赖。
<?xml version="1.0"?>
<package >
<metadata>
<id>MyProject</id>
<version>1.2.3</version>
<title>MyProject</title>
<authors>Example</authors>
<owners>Example</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Example</description>
<copyright>Copyright 2013 Example</copyright>
<tags>example</tags>
<dependencies />
</metadata>
</package>
然后我构建解决方案并创建一个NuGet包...
C:\code\MySolution>.nuget\nuget.exe pack MyProject\MyProject.csproj -Verbosity detailed
这是该命令的输出...
Attempting to build package from 'MyProject.csproj'.
Packing files from 'C:\code\MySolution\MyProject\bin\Debug'.
Using 'MyProject.nuspec' for metadata.
Found packages.config. Using packages listed as dependencies
Id: MyProject
Version: 1.2.3
Authors: Example
Description: Example
Tags: example
Dependencies: Google.ProtocolBuffers (= 2.4.1.473)
Added file 'lib\net40\MyProject.dll'.
Successfully created package 'C:\code\MySolution\MyProject.1.2.3.nupkg'.
创建的.nupkg
包中包含一个.nuspec
文件,但其中包含了一个依赖项部分,在原始的.nuspec
文件中没有...
<dependencies>
<dependency id="Google.ProtocolBuffers" version="2.4.1.473" />
</dependencies>
我认为这是由于此处发生的原因...(来自上述输出)
Found packages.config. Using packages listed as dependencies
如何使NuGet不自动解析依赖项并将它们插入生成的.nuspec文件中,该文件是通过pack命令生成的?我目前正在使用NuGet 2.2。此外,我认为这种行为在旧版本的NuGet中没有发生过;这是一个新的“功能”吗?我找不到任何描述这个“功能”的文档或实现它的时间点。