当前位置: 首页 > 知识库问答 >
问题:

版本信息的中心位置。Visual Studio 2022中的Net Core 6解决方案

商勇
2023-03-14

为了 ASP.Net Visual Studio 2019,我创建了一个共享的AssemblyInfo.cs文件,然后在解决方案的每个项目中引用该文件。从而给了我一个位置来设置版本信息,然后为每个项目设置版本信息。

using System.Reflection;
using System.Runtime.InteropServices;
using JetBrains.Annotations;

[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Company Name")]
[assembly: AssemblyProduct("Product name")]
[assembly: AssemblyCopyright("Copyright © Company. All Rights Reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

[assembly: AssemblyVersion("1.15.0")]
[assembly: AssemblyFileVersion("1.15.0.7156")]
[assembly: AssemblyInformationalVersion("1.15.0")]

每个项目都有一个简化的AssemblyInfo.cs文件:

using System.Reflection;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ProjectName")]
[assembly: AssemblyDescription("")]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")]

以及共享的AssemblyInfo。cs文件作为链接包含在每个项目中。

我正在使用Visual Studio 2022和.Net Core 6启动一个新的解决方案。我看到我可以在每个项目的csproj中设置Version、AssemblyVersion和FileVersion……但我看不到我如何像在上一个解决方案中那样有一个中心位置来设置值。

我已经看到,我可以恢复到AssemblyInfo的手动创建。cs文件,但有没有一种方法可以在不禁用当前标准操作方式的情况下执行我想要的操作(在VS2022/.Net Core 6中)?

代码在源代码控制(SVN)下,但我们(目前)不使用任何构建或CI工具。我只想能够将版本设置为特定值,并为解决方案中的所有项目提供相同的版本。我很感激我可以打开每个csproj文件并分别更新它们,但我宁愿有一个位置。

共有2个答案

轩辕成天
2023-03-14

在较新版本的Visual Studio中,这些位于“包选项卡”下。您仍然可以创建AssemblyInfo.cs就像在旧版本的Visual Studio中使用的那样。

警告:Visual Studio 现在使用默认值填充这些值。无法再测试所需的值是否为 null。

查看Visual Studio中属性下的“包选项卡”

云浩然
2023-03-14

您可以使用MSBuild导入在每个csproj中包含一个公共文件。例如,创建一个包含所有共享属性的文件:

<Project>
  <PropertyGroup>
    <AssemblyVersion>1.15.0</AssemblyVersion>
    <AssemblyFileVersion>1.15.0.7156</AssemblyFileVersion>
    <!-- etc... -->
  </PropertyGroup>
</Project>

然后你可以

如果要使导入自动进行,可以将其放在解决方案根目录下的 Directory.Build.props 文件中,因为此文件会自动导入(您甚至可以在此处分配属性,而不必

这种方法还允许您在构建期间覆盖属性值,如果您愿意(例如,如果您希望CI构建不同于开发构建)使用msBuildMySolution.sln /p:属性=值,或者在单个项目中通过在csproj中设置属性值来覆盖属性值(例如,如果一个项目具有不同于其他项目的特殊版本)。

 类似资料:
  • 本文向大家介绍解密 Linux 版本信息的方法,包括了解密 Linux 版本信息的方法的使用技巧和注意事项,需要的朋友参考一下 显示和解释有关 Linux 版本的信息比看起来要复杂一些。 与引用一个简单的版本号不同,识别 Linux 版本有很多种方法。即使只是快速查看一下 uname 命令的输出,也可以告诉你一些信息。这些信息是什么,它告诉你什么? 在本文中,我们将认真研究 uname 命令的输出

  • 本文向大家介绍Android获取位置信息的方法,包括了Android获取位置信息的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android获取位置信息的具体代码,供大家参考,具体内容如下 1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置的服务,融合了GPS定位、移动通信、导航等多种技术,提供与空间

  • 我有一个Spark程序,它需要几个依赖项。 一个依赖项:a.jar是集群上的2.8版本,但是,我需要使用它的2.9版本。 每次启动程序时,spark都会自动从集群加载A2.8.jar,而不是加载,即使我已经通过提交了这个jar。 我尝试使用设置,但出现了另一个问题。在我的userClassPath中有一个“秘密”jar文件,比如“”,它不能与集群一起工作,而且有如此多的依赖项,我不知道哪个jar不

  • 本文向大家介绍PowerShell中查看当前版本、Windows版本、.NET版本信息的代码,包括了PowerShell中查看当前版本、Windows版本、.NET版本信息的代码的使用技巧和注意事项,需要的朋友参考一下 PowerShell查看当前版本、Windows版本、.NET版本信息 有很多cmdlet或者cmdlet的参数,在PowerShell不同的版本中,支持得不一样。所以,弄清楚当前

  • 问题内容: 有谁知道如何通过Java获取可执行文件/文件的版本信息。场景是我的本地系统上有一个文件,如果服务器上的版本较新,则我的系统上需要从服务器上下载文件。 问题答案: 在花了几个小时上网并编码之后,我找到了使用JNA来获取文件的版本信息的解决方案。

  • 自我介绍 1、给一个需求:航班信息查询系统,怎么设计 2、输入是自然语言的话怎么处理 3、输入是语音,无用户交互反馈,怎么设计查询 4、同音同义词怎么处理 5、实习参加过吗,有什么收获