这里有几个明显的问题:
关于VS集成:在VS 2017年<通常的NuGet是可以单独更新的扩展。在VS 2017中,扩展通过对VS本身的更新进行紧密集成和更新。这从来不包括通常用于打包和推送包的命令行nuget.exe
- 此命令行客户端可从NuGet's download page获得。
打包.NET项目的“经典”方法仍然有效,记录在nuget's documentation page中,尤其重要的是"Creating the .nuspec file … from a Visual Studio project"。
VS 2017还引入了一种新型的项目,它使用从.NET Core工具发展而来的“.NET Sdk”。这些项目与NuGet集成,可以通过VS打包,也可以直接从MSBuild/dotnet pack
打包。此项目类型也可用于创建.NET Framework NuGet包。但是,VS中没有模板,因为没有实现可用于传统.NET项目的某些功能(例如,用于xaml,edmx的Designers)。但对于大多数逻辑库,你可以创建一个.NET标准项目和编辑的csproj文件来改变
<TargetFramework>netstandard1.6</TargetFramework>
到
<TargetFramework>net461</TargetFramework>
所以该项目将面向.NET 4.6.1(其他版本可能) 。该项目将具有与.NET Standard和.NET Core项目相同的集成包装功能。您可以按照指南"Create .NET Standard Packages with Visual Studio 2017"进行操作,但是在创建项目文件后将其更改为项目文件。
为了包括物品放入包中,你可以使用下面的元数据:
<ItemGroup>
<Content Include="**\*.txt" Pack="true" />
</ItemGroup>
这将文件放入到无论是在产生的NuGet一个content
和contentFiles
目录。当所得包通过ProjectReference
消耗的contentFile需要额外的元数据属性,以确保该引用的项目复制到它的输出上生成:
<ItemGroup>
<Content Include="**\*.txt" Pack="true" PackageCopyToOutput="true" />
</ItemGroup>
此属性然而仅在即将到来的VS 2017年支持15.3更新/ .NET Core SDK 1.1/2.0(在撰写本文时尚未发布)。
简单说明在这里:https://www.jweiler.com/create-nuget-packages-with-vs-2017/ – RenniePet