C#---問題記錄

Assets file project.assets.json not found. Run a NuGet package restore

編譯報錯,一般是工程下的obj文件夾被刪除了,或者格式損壞了,在工程所在目錄運行

dotnet restore

即可解決,或者在VS的解決方案上右鍵,點擊Restore NuGet Packages即可

Could not load file or assembly ‘System.Diagnostics.PerformanceCounter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51’. 系統找不到指定的文件

運行時報錯,

  • 原因:使用的是.Net Core進行開發,但是在運行時引用了第三方庫,而第三方庫使用的是.Net Framework,此第三方庫中使用了PerformanceCounters模塊,而在.Net Core環境中是沒有此模塊的,導致報錯
  • 解決:使用兼容.Net Core的第三方庫即可

以下是解決問題過程中查閱的文檔:
https://github.com/dotnet/corefx/issues/3906 .Net Core issues, 還有https://github.com/microsoft/ApplicationInsights-aspnetcore/issues/470ApplicationInsights-aspnetcore的issues,裏有提到.Net Core目前是不支持 PerformanceCounter模塊的,預計在.Net Core 2.8中發佈

Windows -1252 is not supported encoding name,System.NotSupportedException: No data is available for encoding 1252

環境: .Net Core 2.2,WebApi,
這個是在使用配置文件中的數據庫連接字符串時,MySQL模塊拋的異常,其實配置文件使用的是UTF-8格式,代碼環境也是Unicode環境,不應該出現這個報錯,經過查文檔,

安裝:System.Text.Encoding.CodePages庫以及System.Text.Encoding庫(可以通過NuGet Manager安裝)
然後在程序啓動的入口處加上:

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

問題解決,估計是因爲 .Net Core中默認是沒有字符編碼解析的庫的,需要額外安裝,.Net Framework中是有這 兩個庫的;

參考自 stackoverflow問題:https://stackoverflow.com/questions/32471058/windows-1252-is-not-supported-encoding-name

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章