這裏有幾個明顯的問題:
關於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