.Net 5的控制台程序中使用桌面類庫


今天試了一下在.net 5控制台程序中使用桌面類庫, 發現遇到了一些障礙。雖然在.net 5中引用桌面庫比較簡單,只要在csproj文件中將TargetFramework改為"net5.0-windows",並且把UseWindowsForms設置為"true"即可。

    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>

 執行一個簡單的示例:

    static void Main(string[] args)
    {
        MessageBox.Show("hello world");
        Console.WriteLine("Hello World!");
    }

運行的時候卻發現,雖然對話框能很好的顯示出來,但是卻沒有控制台窗口。將TargetFramework或者UseWindowsForms改回去后,就編譯報錯,不支持引用桌面類庫。最后,網上搜了一下,找到了如下解決方案: 在csproj文件中,添加DisableWinExeOutputInference並設置為"true"即可

    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <DisableWinExeOutputInference>true</DisableWinExeOutputInference>

 此外,我還發現了一個間接的方法:把UseWindowsForms設置為"false",引用別的工程,通過調用別的程序集中的方法一樣可以在顯示控制台窗口的方式下,調用桌面類庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM