本文主要是介绍C#多项目统一版本号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题
如果C#项目有个项目组合成,每次升级都需要修改csproj里面的版本号,处理起来比较麻烦
案例
common.targets
有如下两个项目,Main引用ClassLibrary1
namespace ClassLibrary1
{public class Class1{public void SayHello(){Console.WriteLine("hello world");}}
}
Program.cs
namespace Main
{internal class Program{static void Main(string[] args){var c1 = new ClassLibrary1.Class1();c1.SayHello();}}
}
新建common.targets
<Project xlmns="http://schemas.microsoft.com/developer/msbuild/2003"><PropertyGroup><TargetFramework>net8.0</TargetFramework><ImplicitUsings>enable</ImplicitUsings><Nullable>enable</Nullable></PropertyGroup>
</Project>
两个解决方案中去掉原来的代码
<PropertyGroup><TargetFramework>net8.0</TargetFramework><ImplicitUsings>enable</ImplicitUsings><Nullable>enable</Nullable>
</PropertyGroup>
修改为如下代码
<Import Project="../common.targets"/>
运行即可
但是这样也有一个不得劲的地方,就是每个分层,都需要写一个导入的语句。
Directory.Build.props
解决方案目录下新建Directory.Build.props
<Project><PropertyGroup><TargetFramework>net8.0</TargetFramework><ImplicitUsings>enable</ImplicitUsings></PropertyGroup>
</Project>
其他的地方删除即可
Directory.Build.props格式为utf-8,带BOM会报错
项目结构
参考
https://mp.weixin.qq.com/s/XnDZ-eKM0e6qVbfdwxGgRg
https://learn.microsoft.com/zh-cn/visualstudio/msbuild/customize-by-directory?view=vs-2022
这篇关于C#多项目统一版本号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!