我有一个包含以下内容的解决方案:
一个旧式.Net Framework 4.6项目(即,它不使用较新的项目sdk内容,它具有packages.config文件和nuspec文件)
一个网络标准项目
框架项目通过项目引用引用了netstandard项目。
我正在尝试找到一种封装框架项目的方法,同时考虑到对netstandard项目的依赖性(这样netstandard项目就显示为框架项目的依赖性,而不是捆绑在其中)。 / p>
我尝试过:
nuget pack -IncludeReferencedProjects
将nuget pack目标导入框架csproj(<Import Project="$(MSBuildSDKsPath)\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets" />
),然后导入dotnet pack
或msbuild /t:pack
/p:NuspecFile=[path to nuspec]
,这将使我走得更远,而且一切似乎正常,但但是 netstandard项目依赖项已作为软件包的一部分捆绑在一起答案 0 :(得分:0)
如果我说对了,您想通过从旧项目中迁移代码来构建多目标NuGet软件包?
好吧,我通常是通过创建新项目,设置多目标,拖放所有项目并希望您有不受支持的程序集数量来实现的。
我为此编写了指南(实际上是网络上的想法的汇编),并使用多目标项目模板进行了VS扩展。因此,如果您不满意,我将安装扩展程序,创建新的“空白多目标项目”,并复制旧项目中的所有项目。
仅在您这种情况下,您应该将.net45目标更改为与您的首选项等效的目标。在教程中,您将找到有关不支持的程序集的一些提示,等等。它自己的项目模板可以为您完成80%的工作。至少就我而言(迁移9个库),一旦我采用了这种方法,那简直就是小菜一碟。
答案 1 :(得分:0)
通过将C
升级到4.9.3(原为4.5.1)解决了该问题