1
.NET標準的承諾是爲一個版本編寫的任何內容都適用於將來的版本。有條件編譯.NET的最低版本
現在我可以有條件地編譯東西,例如
#if NETSTANDARD1_3
// do things
#elif NETSTANDARD1_4 || NETSTANDARD2_0 || NET45
// do other things
#endif
但對我來說,這似乎具有很差的可擴展性,因爲如果我決定在未來添加新的目標,例如,對於.NET Standard 2.1,我必須在有這些條件的地方去更新它。
我希望做的是一樣的東西:
#if NETSTANDARD1_3
// do things
#elif NETSTANDARD1_4_OR_GREATER || NET45_OR_GREATER
// do other things
#endif
我目前的解決方案是創建這些_OR_GREATER
手動定義在我的項目文件。這至少使我的維護到一個單一的文件,而不是每個源文件:
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<DefineConstants>NETSTANDARD1_4_OR_GREATER;$(DefineConstants)</DefineConstants>
</PropertyGroup>
不過,我很好奇,如果這已經佔到了其他一些更標準的方式。這是一件事嗎?
誰downvoted的問題,頭腦解釋爲什麼? –
我認爲這個問題是有效的,但可能需要一些改寫,說明意圖 - 最低版本的DefineConstant。 –
(哦,這不是我,我upvoted,因爲我覺得這非常有用) –