簡體   English   中英

為什么未設置.NET目標框架定義?

[英]Why are .NET target framework defines not set?

目標框架”文檔頁面引用了某些定義是根據項目的目標框架自動設置的,我假設會根據“ Properties > Application的“ Target framework字段進行更改: 在此處輸入圖片說明

或者在創建新的Visual C#項目時選擇目標框架(“新建項目”>“ Visual C#”>“控制台應用程序(.NET Framework)”)

但是,據我測試,文檔中指定的定義均未定義。

例如,如果我創建一個.NET Framework 3.5項目,或者在屬性中手動將現有項目設置為目標.NET Framework 3.5 ,則未定義NET35

我已經采用了文檔頁面上列出的每個定義,並添加了調試代碼,如果定義了任何一個或全部,則將進行打印,但似乎沒有一個被定義: 在此處輸入圖片說明 源代碼: https : //gist.github.com/JohannesMP/ece8987fa18b2eaf830d7426c2256d6b


我是否應該對何時以及如何設置這些定義做出錯誤的假設? 我還可以采用哪種其他可移植的方式在每行的基礎上有條件地基於目標框架來編譯代碼?

我正在使用默認的Microsoft .NET Framework版本4.7.03056運行Visual Studio社區2017版本15.8.4

netstandard1.3 。只有當您使用新的SDK項目格式並使用多個目標框架(例如net45netstandard1.3 )時,此類預定義常量才有效。 它們的存在是為了幫助您執行條件編譯,以支持多個框架。 我的博客文章顯示了一個具體示例。

因此,您應該創建一個使用新格式的新項目,而不使用.NET Framework Console應用程序模板。

如果您從引用中刪除,則在控制台中的應用程序將無法運行,但會與窗口應用程序一起運行:Microsoft.CSharp和System.Net.http

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM