[英]I am starting a new .Net Core project and I can't figure out how am I supposed to implement nullable reference types for nuget packages
[英]How am I supposed to be building NuGet packages?
我有一些功能想提供給我正在從事的許多項目。 所以自然而然地,我想我應該制作一個NuGet包來包含共享代碼。 所以我:
ADUserCacheUsage.csproj
進入目錄,並在命令窗口中執行nuget spec
。 這將生成一個.nuspec
文件。 nuget pack ADUserCacheUsage.csproj -Build -Symbols -Properties Configuration=Release
(畢竟,如果有人在外部使用該軟件包,他們只需要發布版本,對嗎?) nuget add ADUserCacheUsage.1.0.0.nupkg -source "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages"
太好了,當我在程序包管理器中選擇機器源時,會顯示我的NuGet程序包。 所以我可以在項目中使用它。
我正在制作一個示例網頁來使用它。 該示例所做的只是調用一個函數並在網頁上輸出結果。
問題是,每當我嘗試在調試模式下運行此示例項目時,我都會收到警告消息
您正在調試ADUserCacheUsage.dll的發布版本。
因此,大概應該在發行版之外,在包中包括類庫的調試版本,對嗎? 我不希望示例項目的最終發行版會打擾調試信息,因為調試信息可能會很慢而且很blo腫(誠然,在一個僅作為示例的項目中,這個問題並不多,但是我正在考慮最佳實踐,並且在將來我可能會有更大,更復雜的軟件包)。
但我希望能夠在調試中運行而不會出現此錯誤。 每當我創建一個Web項目時,它都會包含許多其他項目,並且從不會給我有關NewtonSoft.json
。 那么,我應該怎么做才能正確地做到這一點? nuget.org上的每個軟件包是否都包含調試版本?
NuGet軟件包不包含調試信息。
而是有單獨的NuGet符號包(以.symbols.nupkg
結尾) ,其中包含調試符號( .pdb
文件)和源代碼文件。 可以使用nuget pack -Symbols
或dotnet pack --include-symbols
nuget pack -Symbols
dotnet pack --include-symbols
命令工具來創建符號包。
創建並托管符號包之后(在符號服務器上或在本地文件系統上),即使NuGet包中的代碼是使用Release
模式構建的,也可以將Visual Studio配置為使用它們來單步執行代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.