

最近在維護前人留下的項目中,發現有些WinForm項目可以以類庫輸出的形式,調試期間直接運行,以前從來沒有注意到,感覺挺神奇。
今天創建了上面截圖中的兩個項目,進行了比較,表面上看著一模一樣,好不容易才發現其中的隱藏的很深的一行信息。如下:
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
在項目文件csproj文件里的ItemGroup配置節點下。
把這一行,移植到普通winform可執行項目中去,終于起效果了。
太好了,手里還有數百個類似的項目,我都可以統一根據需要切換一下了。
百度了一下,已經有人10年前就發現了。下面是轉載另一位網友的發現:
可能大家并不知道,同樣是類庫,如標準類庫,控件類庫,調試時截然不同,如果你創建工程的時候選擇是控件類庫,那調試時會自動啟動一個控件容器測試工具,給你測試使用,但標準類庫里如果有控件,直接調試時,會報沒有啟動項目,無法調試的信息,這兩種類庫有什么區別呢,表面上看什么都沒有,其實編譯后也是一樣的,究其根源,在于新建項目時的選擇,那么答案就很簡單了,秘密在項目文件里,經過對比,發現控件類庫的項目文件多了
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
標準類庫的項目文件里只要補上這么一句,就可以直接測試控件了
恩,又補充發現了個問題,不是所有控件都能測試的,只有繼承于UserControl的才可以
作者:Superlight
————————————————
版權聲明:本文為CSDN博主「superlight」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/superlight/article/details/4190377
浙公網安備 33010602011771號