在nuget包中包含引用的项目

ctr*_*ron 5 .net c# visual-studio nuget .net-standard

我有3个项目的解决方案(使用netstandard1.4).项目A包含共享代码.项目B是服务器端库,项目C是客户端库.项目B和C包括项目A作为项目参考.

现在我想将项目B和项目C发布为nuget包.

问题是项目B和C的nuget包不包含项目A的代码/ dll.看起来项目B和C希望项目A也作为nuget包.

如何将项目B和C打包为独立的nuget包?我不想将项目A发布为nuget包.

Leo*_*SFT 4

\n

如何将项目 B 和 C 打包为独立的 nuget 包?我不想\xe2\x80\x99 不想将项目 A 作为 nuget 包发布。

\n
\n\n

由于您使用的是.NET Standard 1.4,因此您无法使用直接方式“ dotnet pack”来包含项目引用。由于dotnet pack仅打包项目而不打包其 P2P 引用,因此您可以从文档dotnet-packGitHub 上的问题获取详细信息:

\n\n
\n

打包项目的 NuGet 依赖项已添加到 .nuspec 文件中,因此在安装包时可以正确解析它们。项目到项目的引用未打包在项目内。目前,如果您具有项目与项目之间的依赖关系,则每个项目都必须有一个包。

\n
\n\n

如果要打包项目 B 和 C 包含项目 A 中的代码/dll,可以使用 NuGet.exe 通过将项目引用程序集添加到 .nuspec 文件来创建包 B 和 C:

\n\n
<?xml version="1.0"?>\n<package >\n  <metadata>\n    <id>TestProjectB</id>\n    <version>1.0.0</version>\n    <authors>Tester</authors>\n    <owners>Tester</owners>\n    <requireLicenseAcceptance>false</requireLicenseAcceptance>\n    <description>Package description</description>\n    <releaseNotes>Test sample for netstandard package.</releaseNotes>\n    <copyright>Copyright 2017</copyright>\n    <tags>Tag1 Tag2</tags>\n  </metadata>\n<files>\n    <file src="bin\\Debug\\netstandard1.4\\TestProjectB.dll" target="lib\\netstandard1.4\\TestProjectB.dll" />\n    <file src="bin\\Debug\\netstandard1.4\\TestProjectA.dll" target="lib\\netstandard1.4\\TestProjectA.dll" />\n</files>\n</package>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在这种情况下,您可以将项目 B 和 C 打包为独立的 nuget 包,不需要将项目 A 发布为 nuget 包。

\n