开发网站培训班,企业培训课程分类,那些网站可以上传自己做的视频,可以制作h5的网站在一些大项目需要很多独立的仓库来做#xff0c;每个仓库之间都会有很多相同的配置#xff0c;本文告诉大家如何通过 Directory.Build.props 管理多个项目配置在我的 MVVM 框架需要三个不同的库#xff0c;一个是 Framework 另外两个是 WPF 和 UWP 这三个库有很多重复的配置… 在一些大项目需要很多独立的仓库来做每个仓库之间都会有很多相同的配置本文告诉大家如何通过 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.propsProjectPropertyGroupVersion2.1.156/Version/PropertyGroup
/Project
现在的问题是如何让 Framework 三个不同的仓库引用这个文件使用这个文件的版本号通过 Directory.Build.props 添加下面的代码就可以让 Framework 项目找到版本号ProjectImport Projectbuild\Version.props /
/Project
这样就可以导入版本号文件也就是可以让 Framework 等项目引用这个文件除了版本号也有很多的信息可以通过这个方式配置如设置作者信息作者的信息是属性需要使用下面代码ProjectImport Projectbuild\Version.props /PropertyGroupAuthorslindexi/Authors/PropertyGroup
/Project
除了作者还有很多相同的信息如仓库的路径下面我就直接将所有可以用到的属性写出来这样大家可以复制下面的代码到自己的 Directory.Build.props 通过修改信息定义自己的配置
ProjectImport Projectbuild\Version.props /PropertyGroupOutputPath$(MSBuildThisFileDirectory)bin\$(Configuration)/OutputPath!-- 打包的文件夹 --PackageOutputPath$(OutputPath)/PackageOutputPath!-- 是否包括符号默认为 false 设置为 true 会创建 xx.symbols.nupkg 文件 --IncludeSymbolstrue/IncludeSymbols!-- 作者名 --Authorslindexi/Authors!-- 是否在每次重新编译的时候创建 nuget 包 --GeneratePackageOnBuildtrue/GeneratePackageOnBuild!-- 在 nuget 设置的项目的 url 通过这个 url 可以在 nuget.org 看到项目主页 --PackageProjectUrlhttps://github.com/lindexi/UWP/tree/master/uwp/src/Framework/PackageProjectUrl!-- 在 nuget 设置项目的仓库通过这个 url 可以点击到源代码 --RepositoryUrlhttps://github.com/lindexi/UWP/tree/master/uwp/src/Framework/RepositoryUrl!-- 版权很多时候都是写 Copyright © 2018 公司, All Rights Reserved. --CopyrightMIT/Copyright!-- 让用户安装的时候看到的版权链接 --PackageLicenseUrlhttps://github.com/lindexi/UWP/blob/master/LICENSE/PackageLicenseUrl!-- 在 nuget 设置标签 --PackageTagsWPF;MVVM;UWP/PackageTags/PropertyGroupItemGroup!--指定自己的在安装 nuget 时修改编译--!-- 添加的 README 文件 --None Include$(MSBuildThisFileDirectory)README.md PackTrue PackagePath Visiblefalse//ItemGroup/Project
上面的代码的 $(MSBuildThisFileDirectory) 就是替换文件所在的文件夹路径更多请看 项目文件中的已知属性知道了这些就不会随便在 csproj 中写死常量啦 - walterlvhttps://blog.walterlv.com/post/known-properties-in-csproj.html更多关于 Roslyn 请看 手把手教你写 Roslyn 修改编译 https://blog.lindexi.com/post/roslyn.html参见Roslyn 入门 - CSDN博客