[英]How do I Install, Update, Register a Nuget package on the Web Server that does not have Nuget or Visual Studio installed?
[英]How do I set Visual Studio to build a NuGet package?
如何在構建時讓Visual Studio為我的庫組件構建NuGet包?
我正在使用可移植類庫作為示例項目。
確保NuGet.exe
文件夾中的.nuget
文件是最新的。
默認值來自AssemblyInfo.cs
,因此請進行清理。
如果不引用任何內容,則最好添加一個NuGet包引用,最好是像JSON.NET這樣的簡單引用。 通常,PCL項目沒有外部依賴性,在這種情況下,沒有NuGet引用,也沒有任何NuGet引用,所需的MSBuild配置將無法正確設置,因此我們需要添加一個“虛擬”。
啟用NuGet軟件包還原。
編輯NuGet.targets文件,並確保BuildPackage
為true
。
<!-- Property that enables building a package from a project --> <BuildPackage Condition=" '$(BuildPackage)' == '' ">true</BuildPackage>
編輯您的.csproj文件並將其添加到第一個默認PropertyGroup
<BuildPackage>true</BuildPackage>
重建您的項目,然后在輸出中搜索nupkg並確認包文件的創建和位置。
刪除虛擬的NuGet軟件包引用,然后再次構建並檢查輸出。
若要進一步自定義程序包的創建,可以將MyProjectName.nuspec
文件粘貼在.csproj
文件旁邊。
有關NuSpec格式的更多信息,請參見http://docs.nuget.org/docs/reference/nuspec-reference 。 您還可以從現有軟件包(僅是一個zip文件)中提取一個文件,並仔細看看它是如何完成的。
添加這樣的構建后事件:
$(SolutionDir)\.nuget\nuget.exe pack "$(MSBuildProjectFullPath)" -p Configuration=Release -o "$(MSBuildProjectDirectory)\bin\Release" -symbols"
然后下載nuget.exe
其.nuget
解決方案文件旁邊的.nuget
文件夾中。
您可以使用nuget update -self
保持.exe的nuget update -self
。
注意
nuget.exe pack
當前存在一個錯誤,在該錯誤中它將看到一個packages.config
文件,並嘗試查找您的解決方案中提到的軟件包,但是如果packages文件夾位於一個陌生的地方(例如,如果您的解決方案),則無法找到它們文件不是項目的上一級。
要解決此問題,請添加另一個構建后事件,以將packages
文件夾復制到項目文件夾中。
repositorypath
配置設置似乎對我無濟於事。
查看GitHub報告:
https://github.com/NuGet/Home/issues/5316
真有趣 當我采用這種新方法時,我在自動構建構建包的慣常方法上遇到了問題。 因此,當我在這里遇到自己的問題時,我正在尋找一個合適的SO問題來回答我的新的構建后方法!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.