.net core .net核心项目中的SharedAssemblyInfo等效项?

.net core .net核心项目中的SharedAssemblyInfo等效项?,.net-core,visual-studio-2017,.net Core,Visual Studio 2017,当我希望一个解决方案中的多个项目共享相同的程序集信息(主要是AssemblyVersion)时,我使用了下面介绍的技术: 现在我们正在开发.net core和asp.net core项目的解决方案,我们希望所有项目共享相同的AssemblyVersion,但现在每个项目的版本都存储在其.csproj文件中(我们使用的是vs2017) 我尝试使用true生成信息,但新文件是在构建时创建的 是否有一种方法可以像“旧”SharedAssemblyInfo.cs那样集中这些信息?您可以在要为其设置默认属

当我希望一个解决方案中的多个项目共享相同的程序集信息(主要是AssemblyVersion)时,我使用了下面介绍的技术:

现在我们正在开发.net core和asp.net core项目的解决方案,我们希望所有项目共享相同的AssemblyVersion,但现在每个项目的版本都存储在其.csproj文件中(我们使用的是vs2017)

我尝试使用
true
生成信息,但新文件是在构建时创建的


是否有一种方法可以像“旧”SharedAssemblyInfo.cs那样集中这些信息?

您可以在要为其设置默认属性的所有.csproj文件之上添加一个
目录.Build.props
文件。此
.props
文件将自动导入其下方的所有
.csproj
文件中。您可以在其中设置公共属性:

<Project>
  <PropertyGroup>
    <Company>Erhardt Enterprises</Company>
    <Copyright>Erhardt Enterprises ©</Copyright>
  </PropertyGroup>
</Project>

埃哈特企业
埃哈德企业(
这些MSBuild属性将应用于它下面的所有
.csproj
文件。因此,当生成部件属性时,这些值将在所有项目中使用


以下是。

您可以创建.props文件(例如common.props)并将公共项目配置置于该文件中:

常用道具:

<Project>
  <PropertyGroup>
    <AspNetCoreVersion>2.0.0</AspNetCoreVersion>
  </PropertyGroup>
</Project>


它的可能副本不是。我已经知道.net核心程序集信息是在哪里写的,我在问如何为多个项目集中这些信息我必须承认我没有试过,但是你读过第一个吗?它显示了如何禁用来自csproj的信息的使用,因此应该允许您继续使用现有的方法(使用SharedAssemblyInfo.cs文件)。还可以查看本质上就是这样。如果您想选择哪些项目包含公共.props文件:将其命名为不同的名称,如“CommonAssemblyInfo.props”,然后在要共享属性的每个
.csproj
的顶部添加一行
。@EricErhardt如果您喜欢黑名单方法,您还可以将要排除的项目的
importDirectory BuildTargets
属性设置为false。那么[assembly:AssemblyInformationalVersion(“a.b.c.d”)]-网络中似乎没有此属性的属性core@Macko-查看
属性。它映射到
System.Reflection.AssemblyInformationalVersionAttribute
。看见
<Project Sdk="Microsoft.NET.Sdk.Web">

  <Import Project=".\common.props" />

  ...

</Project>
<Project Sdk="Microsoft.NET.Sdk.Web">

  <Import Project=".\common.props" />

  ...

</Project>