[英]How to use Project's Assembly information when building NuGet package using MSBuild?
使用MSBuild创建NuGet package时如何使用项目中的程序集信息通过NuGet package传递和使用。
</Project>
<PropertyGroup>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageId>Test</PackageId>
<PackageVersion Condition=""></PackageVersion>
<Title>Testing</Title>
<Authors>Hugh</Authors>
<PackageIcon>Hugh.png</PackageIcon>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<Description>test</Description>
<PackageTags>test</PackageTags>
<PackageReleaseNotes>Update.</PackageReleaseNotes>
<copyright>Copyright © 2021 </copyright>
</PropertyGroup>
<ItemGroup>
<None Include="Resources\test.png" Pack="true" PackagePath="" />
</ItemGroup>
</Project>
我希望将 NuGet Package ID 设置为程序集标题,将说明设置为程序集说明,将作者设置为公司,将 PackageVersion 设置为程序集版本等。
<Target Name="RetrieveIdentities">
<GetAssemblyIdentity
AssemblyFiles="$(MyAssemblies)">
<Output
TaskParameter="Assemblies"
ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<Message Text="Files: %(MyAssemblyIdentities.Version)"/>
</Target>
我曾尝试使用上述目标,但未能成功,并且不确定在 NuGet package 的 PropertyGroup 下的 Package 版本中使用或引用 %(MyAssemblyIdentities.Version)。
请指教?
重用 MSBuild 变量足以将AssemblyTitle
与PackageId
(只要命名限制允许)同步,以及Company
与Authors
等同步。不需要目标。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup>
<AssemblyTitle>Some Title</AssemblyTitle>
<Company>Some Company</Company>
<Description>Some Description</Description>
<PackageId>$(AssemblyTitle.Replace(" ", "_"))</PackageId>
<Authors>$(Company)</Authors>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
</Project>
构建这个时
dotnet build -p:Version=1.2.3
(或将Version
属性添加到 csproj),构建将默认使用给定Version
作为 package 版本和程序集版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.