解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法
以下方法來自于微軟github開源項(xiàng)目WinForms:
dotnet/winforms - Using the Classic WinForms Designer in WinForms Core, 請(qǐng)放心使用 .
目前.net core下的 Windows Forms的可視化設(shè)計(jì)器(Designer)尚不可用,后續(xù)的Visual Studio 2019 Update才會(huì)支持該部分的功能。不過目前我們想在vs2019中使用 Designer,有一種臨時(shí)解決方法。
可以使用Visual Studio來處理鏈接文件(Link files)的功能,并將其WinForms Designer用于Classic Framework (即.net Framework的Win Forms項(xiàng)目)。
具體的解決方法是在同一個(gè)?Solution下創(chuàng)建兩個(gè)項(xiàng)目:
用于設(shè)計(jì)WinForms應(yīng)用程序的.NET Framework應(yīng)用程序(.net core項(xiàng)目)
用于運(yùn)行WinForms應(yīng)用程序的.NET Core應(yīng)用程序(.net Framework 項(xiàng)目)
而兩個(gè)應(yīng)用程序(.net core項(xiàng)目和相應(yīng).net Framework 項(xiàng)目)都將引用相同的文件。
在該方法中,只要添加新的Win Form或新的UserControl,就需要在Classic Framework WinForms項(xiàng)目(.net Framework的Win Forms項(xiàng)目)中重新設(shè)置Form文件的嵌套層級(jí)關(guān)系,推薦使用Mad Kristensen的文件嵌套擴(kuò)展來完成這件事,而不是使用文本編輯器來修補(bǔ)項(xiàng)目文件(.csproj文件),建議事先安裝好該vs插件。
完整步驟:
安裝 vs 2019 professional/enterprise版本
先安裝 vs 2019 professional/enterprise版本,安裝好.net core 3.0 SDK,此時(shí)試著創(chuàng)建一個(gè).net core下的 win forms 應(yīng)用,
設(shè)置好相關(guān)項(xiàng)目名和存放路徑后,會(huì)彈出:
在vs的設(shè)置里,勾選.NET core下的"Use preview SDK"
設(shè)置完,重啟vs才能生效。
使用vs自帶的模板,選擇其中的 .net core forms 創(chuàng)建Project, 取名為"CoreHelloForm"
此時(shí)的文件目錄為:
在剛創(chuàng)建的Solution中使用vs自帶的模板,選擇其中的.net framework forms添加新的project,取名為"CoreHelloForm.Designer"
此時(shí)Solution中的文件目錄為:
將.net core form下的Form1 重命名為 MainForm
此時(shí),選中 .net core form項(xiàng)目,右鍵選擇 “Set as start up project”,按F5運(yùn)行項(xiàng)目,可看到窗體:
然后點(diǎn)窗體右上角的x關(guān)閉按鈕,停止運(yùn)行.
測(cè)試從命令行是否能正常 build?.net core項(xiàng)目
右鍵 .net core form項(xiàng)目,點(diǎn)擊"Open Folder in File Explorer",
刪除此處的bin?文件夾
在上方地址欄輸入cmd?進(jìn)入命令行:
輸入dotnet --version,看是否能看到具體.net core版本,如果沒問題,繼續(xù)下面的步驟。
輸入dotnet build
此時(shí),回到文件目錄D:\Coding\csProj\CoreHelloForm\CoreHelloForm\bin\Debug\netcoreapp3.0,雙擊其中的exe文件,窗體能正常打開。
刪除項(xiàng)目CoreHelloForm.Designer中所有Form1相關(guān)的文件
接著選中.net framework項(xiàng)目CoreHelloForm.Designer下的Form1,右鍵點(diǎn)擊"Delete",
會(huì)出現(xiàn)下面這個(gè)警告框,點(diǎn)OK。
在項(xiàng)目`CoreHelloForm.Designer中以"As Link"的方式引用.net core form項(xiàng)目下的MainForm相關(guān)文件
選中項(xiàng)目CoreHelloForm.Designer,右鍵Add,選"Existing Item"
打開文件選擇框之后,選擇.net core項(xiàng)目CoreHelloForm下的下圖中高亮的3個(gè)文件.
點(diǎn)擊Add As Link。
從Extension market下載并安裝擴(kuò)展 File Nesting
下載地址:?File Nesting for VS
下載到的文件是File_Nesting_v2.6.85.vsix, 關(guān)閉vs,雙擊,勾選上相應(yīng)版本的vs安裝即可~
使用 File Nesting來修改 Link 的 MainForm相關(guān)文件的層次關(guān)系.
先選中文件MainForm.Designer.cs和MainForm.resx,然后右鍵點(diǎn)擊 "File Nesting" -> "Auto-nest selected items"
再右鍵點(diǎn)擊 "File Nesting" -> "Nest item",選擇?MainForm
點(diǎn)?OK繼續(xù).
再進(jìn)行一次重命名
將.Designer項(xiàng)目下的Program.cs中的Form1改為MainForm.
重設(shè)啟動(dòng)項(xiàng)項(xiàng)目
選中項(xiàng)目CoreHelloForm.Designer,右鍵 Rebuild, 選中.net framework項(xiàng)目CoreHelloForm.Designer,右鍵選擇 “Set as start up project”.
關(guān)閉 Solution中 項(xiàng)目CoreHelloForm.Designer中MainForm的干擾文件
此時(shí),如果試著雙擊項(xiàng)目CoreHelloForm.Designer中的MainForm.cs,會(huì)彈出如下警告。
那是因?yàn)轫?xiàng)目CoreHelloForm.Designer中的MainForm.cs 所Link 的與MainForm相關(guān)的文件已經(jīng)在 項(xiàng)目CoreHelloForm 中 打開。
我們將已打開的文件中與項(xiàng)目CoreHelloForm.Designer中Form相關(guān)的文件都關(guān)閉掉,比如:
試用 Designer
現(xiàn)在,再雙擊項(xiàng)目CoreHelloForm.Designer中的MainForm.cs,就能看到 Designer 了。
此時(shí),可以進(jìn)行可視化編輯了。
比如,我做了如下幾處修改:
改掉 Form的 Title
改掉文本框的內(nèi)容.
改掉窗體的圖標(biāo)(icon)
按F5,運(yùn)行的效果圖為:
項(xiàng)目代碼已推到github,歡迎Fork和star.
傳送門:?.netCore-WinForms_Designer?, 如果覺得自己配置起來麻煩,也可以 clone 下來自己體驗(yàn)一把喔~
原文地址:https://www.cnblogs.com/enjoy233/p/workaround_to_use_the_designer_in_winForms_Core_App.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總?http://www.csharpkit.com?
總結(jié)
以上是生活随笔為你收集整理的解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软推出新语言Bosque,超越结构化程
- 下一篇: [NewLife.XCode]数据层缓存