我有一個帶有 的 csproj <LangVersion>default</LangVersion>,它當前默認為 c# 7.0。如果我手動將其更改為 7.3,它會正確編譯使用 7.1 及更高版本的某些功能的代碼。當然,我可以在每個 csproj 上更改此設置,但是由于我們有很多,我正在尋找其他解決方案。我在存儲庫的根目錄中添加了 Directory.Build.props,并將其導入到 csproj 中。但是<LangVersion>來自 csproj 的設置優先于<LangVersion>來自我的道具文件的設置......無論我在 csproj 中的哪個位置導入它。<LangVersion>如果這可以從一些主道具繼承,我寧愿不要求每個人從他們的 csproj 和所有未來的 csproj 中刪除該屬性……但似乎并非如此。我在這里錯過了什么?
1 回答

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊
該Directory.Build.props
文件<Import>
在項目文件的開頭 (!)自動導入(不需要)。
因此,項目文件中的每個內容都添加在該文件的內容之后,因此將覆蓋之前定義的值。(除非 csproj 包含類似 的條件<LangVersion Condition="'$(LangVersion)' != ''">…
)。
要覆蓋來自 csproj 文件的任何值,您可以使用Directory.Build.targets
在 (!) 項目內容之后自動導入的文件,該文件允許您覆蓋項目文件中設置的值。
- 1 回答
- 0 關注
- 284 瀏覽
添加回答
舉報
0/150
提交
取消