日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Roslyn 使用 Directory.Build.props 管理多个项目配置

發布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Roslyn 使用 Directory.Build.props 管理多个项目配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在一些大項目需要很多獨立的倉庫來做,每個倉庫之間都會有很多相同的配置,本文告訴大家如何通過 Directory.Build.props 管理多個項目配置

在我的 MVVM 框架需要三個不同的庫,一個是 Framework 另外兩個是 WPF 和 UWP 這三個庫有很多重復的配置,如版本號和作者信息。

在之前,我每次發布的時候,我都需要修改三個不同的倉庫的版本號,將幾個版本號升級到最新,但是這個方法如大家所見,效率是很低的。

在我的另外的博客 Roslyn 通過 Nuget 管理公司配置?和 Roslyn 通過 nuget 統一管理信息?介紹了統一管理配置的優點。

但是很顯然,我暫時無法使用 nuget 的方法統一幾個倉庫的配置,我需要一個新的方式。

在看到我之前的博客 Roslyn 使用 Directory.Build.props 文件定義編譯?可以知道,通過 Directory.Build.props 文件可以修改配置。

于是本渣就使用這個方法統一配置,我在項目的最外面添加了 Directory.Build.props 文件

我創建了 Build 文件夾,這個文件夾里面就放一個文件,這個文件就是管理版本號

Build\Version.props<Project><PropertyGroup><Version>2.1.156</Version></PropertyGroup> </Project>

現在的問題是如何讓 Framework 三個不同的倉庫引用這個文件,使用這個文件的版本號

通過 Directory.Build.props 添加下面的代碼就可以讓 Framework 項目找到版本號

<Project><Import Project="build\Version.props" /> </Project>

這樣就可以導入版本號文件,也就是可以讓 Framework 等項目引用這個文件

除了版本號也有很多的信息可以通過這個方式配置,如設置作者信息,作者的信息是屬性需要使用下面代碼

<Project><Import Project="build\Version.props" /><PropertyGroup><Authors>lindexi</Authors></PropertyGroup> </Project>

除了作者還有很多相同的信息,如倉庫的路徑,下面我就直接將所有可以用到的屬性寫出來,這樣大家可以復制下面的代碼到自己的 Directory.Build.props 通過修改信息定義自己的配置

<Project><Import Project="build\Version.props" /><PropertyGroup><OutputPath>$(MSBuildThisFileDirectory)bin\$(Configuration)</OutputPath><!-- 打包的文件夾 --><PackageOutputPath>$(OutputPath)</PackageOutputPath><!-- 是否包括符號,默認為 false 設置為 true 會創建 xx.symbols.nupkg 文件 --><IncludeSymbols>true</IncludeSymbols><!-- 作者名 --><Authors>lindexi</Authors><!-- 是否在每次重新編譯的時候創建 nuget 包 --><GeneratePackageOnBuild>true</GeneratePackageOnBuild><!-- 在 nuget 設置的項目的 url 通過這個 url 可以在 nuget.org 看到項目主頁 --><PackageProjectUrl>https://github.com/lindexi/UWP/tree/master/uwp/src/Framework</PackageProjectUrl><!-- 在 nuget 設置項目的倉庫,通過這個 url 可以點擊到源代碼 --><RepositoryUrl>https://github.com/lindexi/UWP/tree/master/uwp/src/Framework</RepositoryUrl><!-- 版權,很多時候都是寫 Copyright ? 2018 公司, All Rights Reserved. --><Copyright>MIT</Copyright><!-- 讓用戶安裝的時候看到的版權鏈接 --><PackageLicenseUrl>https://github.com/lindexi/UWP/blob/master/LICENSE</PackageLicenseUrl><!-- 在 nuget 設置標簽 --><PackageTags>WPF;MVVM;UWP</PackageTags></PropertyGroup><ItemGroup><!--指定自己的在安裝 nuget 時修改編譯--><!-- 添加的 README 文件 --><None Include="$(MSBuildThisFileDirectory)README.md" Pack="True" PackagePath="" Visible="false"/></ItemGroup></Project>

上面的代碼的?$(MSBuildThisFileDirectory)?就是替換文件所在的文件夾路徑,更多請看?項目文件中的已知屬性(知道了這些,就不會隨便在 csproj 中寫死常量啦) - walterlv:https://blog.walterlv.com/post/known-properties-in-csproj.html

更多關于 Roslyn 請看?手把手教你寫 Roslyn 修改編譯?:? https://blog.lindexi.com/post/roslyn.html

參見:Roslyn 入門 - CSDN博客

總結

以上是生活随笔為你收集整理的Roslyn 使用 Directory.Build.props 管理多个项目配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。