C#多项目统一版本号

news2024/11/10 11:19:32

问题

如果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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2077150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BSV区块链发布Golang软件开发工具包

​​发表时间&#xff1a;2024年8月8日 BSV区块链团队正式发布为Golang语言开发的软件开发工具包&#xff08;SDK&#xff09;。这个Golang SDK&#xff08;以下称Go SDK&#xff09;为开发可扩展的BSV区块链应用提供了一套升级且标准化的接口和工具。 请在GitHub上访问Go SDK…

1Panel应用推荐:MeterSphere开源持续测试工具

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…

【protobuf入门学习(一)】 —— protobuf安装教程

目录 &#xff08;一&#xff09;protobuf 的基本介绍 1. 序列化概念 2. ProtoBuf 是什么 3. ProtoBuf 的使用特点 &#xff08;二&#xff09;protobuf 安装 2.1 protobuf ——Windows 1. 下载ProtoBuf编译器 2. 配置环境变量 3. 检查是否配置成功 2.2 protobuf —— L…

【数字时序】时钟树延迟偏差——CPPR adjustment

接上一篇文章Innovus的时序报告解读&#xff0c;新版的貌似多了一些信息&#xff0c;比如CPPR Adjustment和Derate。不太清楚这两个是什么概念&#xff0c;搜索之后转载2篇后端工程师的博客如下&#xff1a; 搜到个这个网站好像有很多后端相关的知识点分享一哈&#xff1a; Co…

Linux文件编程(进阶)

文章目录 Linux文件编程文件操作的基本元素&#xff08;文件在磁盘上的操作&#xff09;软链接和硬链接原理文件系统范围创建方式示例&#xff1a;在终端使用指令创建软硬链接软链接硬链接 删除源文件影响软链接和硬链接实现的具体原理link函数unlink函数代码示例&#xff1a;使…

【链栈的实现】--------本质为不带头结点的 头插法建立起来的单链表

1.链栈的基本属性与特征&#xff1a; 链栈是运算受限的单链表&#xff0c;只能在链表头部进行操作 2.链栈的相关基础操作汇总 初始化操作&#xff1a;操作结果:构造一个空栈 S。 InitStack(LinkStack *s)判定S是否为空栈&#xff1a; 初始条件:栈S 已存在 操作结果:若栈S为…

【Linux】全面解析进程:优先级、环境变量与地址空间

文章目录 1. 进程概念1.1 什么叫做进程&#xff1f;1.2 进程和程序的区别 2. linux下的进程2.1 task_struct 包含哪些内容2.2 访问&#xff08;查看&#xff09;进程信息2.3 通过系统调用获取进程标示符2.4 通过系统调用创建进程2.5 进程状态2.6 如何查看进程状态&#xff08;指…

鸿蒙开发5.0【基于CameraKit,通过avrecorder进行录像】

1 场景描述 录像是相机应用的最重要功能之一&#xff0c;录像是循环帧的捕获。本文通过CameraKit自定义相机并通过avrecorder进行录像。 2 效果图 3 自定义相机录像流程图 4 方案描述 4.1 整体描述&#xff1a; 总体可分为:1、相机输入&#xff0c;2、同时输出预览流录像流…

【Python机器学习】NLP分词——利用分词器构建词汇表(三)——度量词袋之间的重合度

如果能够度量两个向量词袋之间的重合度&#xff0c;就可以很好地估计他们所用词的相似程度&#xff0c;而这也是它们语义上重合度的一个很好的估计。因此&#xff0c;下面用点积来估计一些新句子和原始的Jefferson句子之间的词袋向量重合度&#xff1a; import pandas as pdse…

win10配置安装apache服务

Welcome! - The Apache HTTP Server Project

redisson watchdog 原理

目录 1、使用2、加锁解析1、getLock2、tryLock2.1、当ttl为null时为加锁成功&#xff0c;返回true,否则继续往下执行&#xff0c;判断是否超过等待时间&#xff0c;当前时间减去获取锁前时间就是获取锁花费时间。2.2、tryAcquire(leaseTime, unit, threadId)2.3 、renewExpirat…

黑悟空!一区预定!原创首发!SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序列预测

黑悟空&#xff01;一区预定&#xff01;原创首发&#xff01;SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序列预测 目录 黑悟空&#xff01;一区预定&#xff01;原创首发&#xff01;SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序…

帮助检测SQL注入漏洞的工具

目录 SQLMap与Burp Suite相比&#xff0c;哪个更适合进行大规模的SQL注入检测&#xff1f; OWASP ZAP在检测SQL注入时的优势体现在哪些方面&#xff1f; 对于SQL注入漏洞检测&#xff0c;Havij和acunetix有什么区别&#xff1f; 在检测SQL注入漏洞方面&#xff0c;有几款工具…

shell脚本-采集容器内自定义端口tcp连接数并通过http接口推送到Prometheus

目录 1、脚本编写 2、脚本说明 3、运行脚本 1、脚本编写 脚本监控服务器 5000 端口的 TCP 连接数。使用 netstat 工具获取连接数&#xff0c;并通过一个简单的 shell 服务器提供 /connect 接口。具体功能如下&#xff1a; vim prometheus_tcp_monitor.sh 编写脚本&#…

Docker 安装消息队列RabbitMQ

拉取镜像 docker pull rabbitmq拉取最新镜像 创建并运行 docker run -d --hostname my-rabbit --name rabbit-p 15672:15672 -p 5673:5672rabbitmq开启Web管理 进入容器 docker exec -it rabbitmq /bin/bash开启web管理 rabbitmq-plugins enable rabbitmq_managementhttp:…

一文通透DeepSeek-V2(改造Transformer的中文模型):从DeepSeek LLM到DeepSeek-V2的MLA与MoE

前言 成就本文有以下三个因素 24年5.17日&#xff0c;我在我司一课程「大模型与多模态论文100篇」里问道&#xff1a;大家希望我们还讲哪些论文 一学员朋友小栗说&#xff1a;幻方发布的deepseek-v224年5.24日&#xff0c;我司一课程「大模型项目开发线上营1」里的一学员朋友…

Typora + PicGo + SMMS 实现markdown格式文档图片上传

Typora PicGo SMMS 实现图片自动上传 1. Typora 软件安装2. PicGo 的安装2.1 下载 PicGo 3. 配置 SMMS 图床服务3.1 注册并登录 SMMS3.2 获取 API Token 4. 软件配置4.1 Typora 图床设置4.2 PicGo 配置 5. 使用 Typora 实现图片自动上传 1. Typora 软件安装 Typora中文版是一…

排序1

一、概述 直接插入排序 是稳定排序 二、插入排序 1&#xff09;直接插入排序 2&#xff09;折半插入排序 3)希尔排序 、 三、交换排序 1&#xff09;冒泡排序 2&#xff09;快速排序

three.js 着色器学习 聚集地

预览地址&#xff1a;https://z2586300277.github.io/three-cesium-examples 国内站点预览&#xff1a;http://threehub.cn github: https://github.com/z2586300277/three-cesium-examples

swift微调Qwen-7B大模型

环境说明&#xff1a; CUDA相关环境已搭建完成&#xff0c;不会装CUDA环境可参照我的其它文章&#xff1b; 显卡&#xff1a;4张3090 1、安装swift环境 #从源码安装 git clone https://github.com/modelscope/swift.git cd swift pip install -e .[llm] pip install -e .[e…