我從標題中知道這聽起來像是重復。事實上,這是對問題的過度簡化,它似乎有許多其他癥狀,我承認我將難以表達。我真的不想發布這個問題,但我已經搜索到死并撞到了墻。
自從我上次創建一個新的 WinForms 應用程式以來已經有一段時間了,我注意到很多東西......關閉了。首先,在創建專案時,盡管安裝了多個版本的 .NET Framework,但我只獲得了 2 個目標框架選項。

我選擇使用默認選項(.NET Core 3.1)。這是一個簡單的應用程式,旨在更新資料庫中專案的狀態。與我所有的專案一樣,我喜歡將連接字串保存在 app.config 中,但是新專案沒有生成這樣的檔案。這是舊專案中的樣子:

我決定強行添加一個 app.config 檔案(來自專案選單中的“添加新專案”向導),只為了除錯器在執行程序中停止,控制臺中只有這個錯誤:
exception of type 'System.TypeInitializationException' occurred...
在谷歌搜索這個問題后,我了解到組態檔的沖突會導致該錯誤被拋出,所以我立即洗掉了我創建的那個并決定查看除錯目錄。
這是我注意到目錄結構與以前不同的地方。以前除錯檔案夾將包含專案檔案,現在我看到一個檔案夾 netcoreapp3.1。無論如何,在探索其內容時,我發現了一個組態檔,但有一個區別。以前的組態檔被命名為projectname.exe.config,而這個是projectname.dll.config。盡管如此,我還是打開了它并添加了我的 Appsettings,但它看起來確實與我習慣的不同:

此時,程式運行時不會拋出先前的例外,但現在我的連接字串未設定,因為它不會從 Appsettings 中提取值。這是應該讀取字串的行:
Public Shared Cstring As String = System.Configuration.ConfigurationSettings.AppSettings("ConnectionString")
我是否應該使用其他方法來讀取 Appsettings 鍵,或者我可能需要制作不同型別的組態檔?
uj5u.com熱心網友回復:
我對不同的 app.config 格式一無所知,但我可以告訴您如何解決僅將 .NET 5.0 或 .NET Core 作為專案目標的問題。
如果您查看創建新專案時可用的專案模板串列,您看到的第一個模板將是“Windows 表單應用程式”。正如您所指出的,這將僅支持 .NET 5.0 或 .NET Core。如果繼續向下串列,您將看到“Windows Forms App (.Net Framework)”。這是用于支持 5.0 之前/非核心 .NET(例如 .NET Framework 4.8)的專案模板。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/383726.html
