Msbuild 在打包时设置打包ID?
我试图弄清楚如何在构建时指定packageId,或者在包时指定packageId。我的csproj中有以下内容,可以很好地在本地创建用于测试的包。我们正在使用Azure DevOps构建管道来构建和打包我们的nuget包,我希望能够在构建管道中将packageId设置为任务或msbuild参数 有人对我如何做到这一点有什么建议吗 谢谢Msbuild 在打包时设置打包ID?,msbuild,azure-devops,nuget-package,Msbuild,Azure Devops,Nuget Package,我试图弄清楚如何在构建时指定packageId,或者在包时指定packageId。我的csproj中有以下内容,可以很好地在本地创建用于测试的包。我们正在使用Azure DevOps构建管道来构建和打包我们的nuget包,我希望能够在构建管道中将packageId设置为任务或msbuild参数 有人对我如何做到这一点有什么建议吗 谢谢 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);Dependencies</TargetsForTfmSpecificBuildOutput>
<Version>0.1.0.5</Version>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<AssemblyName>MyAssembly</AssemblyName>
<RootNamespace>MyAssembly</RootNamespace>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<PackageId>MyAssembly.Test</PackageId> <----- set at package time
<FileVersion>1.0.0.0</FileVersion>
<PackageLicenseUrl>https://my.domain.xyz/license.pdf</PackageLicenseUrl>
<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
<Description>A useful description.</Description>
<Company>XYZ</Company>
<Authors>UiPath</Authors>
<PackageIconUrl>http://my.domain.xyz/favicon.ico</PackageIconUrl>
net461
真的
$(TargetsForTfmSpecificBuildOutput);依赖关系
0.1.0.5
真的
MyAssembly
MyAssembly
1.0.0.0
MyAssembly.Test您可以在克隆后和生成前使用文件转换任务修改csproj的XML:
您可以在克隆后和生成前使用文件转换任务修改csproj的XML:
你试过打电话吗
dotnet pack -c Release -p:PackageId=The.Other.Packge.id
或.NET Core CLI任务中的等效任务是否尝试调用?:
dotnet pack -c Release -p:PackageId=The.Other.Packge.id
或.NET Core CLI任务中的等效项
在打包时设置打包ID
答案是肯定的
根据文档,我们可以知道在构建时支持设置PackageId
注意:
我看到您将属性GeneratePackageOnBuild
设置为true
,因此visual studio将自动生成nuget包
因此,如果您没有使用额外的dotnet-pack
任务来打包您的包,您可以在dotnet-build任务中添加msbuild参数-p:PackageId=
,如:
dotnet build -c Release -p:PackageId=<PackageId>
dotnet构建-c发行版-p:PackageId=
如果您有另一个dotnetpack
任务来打包您的包,@Martin的答案是正确的
注2:
当我们使用选项-p:PackageId
来更改包ID时,但不会更改AssemblyName。因此,生成的包的包ID
与其AssemblyName
不一致。当我们使用这个nuget包时,我们需要更加注意。或者我们也可以通过选项-p:AssemblyName=
更改AssemblyName
,使其与包id匹配
希望这有帮助
在打包时设置打包ID
答案是肯定的
根据文档,我们可以知道在构建时支持设置PackageId
注意:
我看到您将属性GeneratePackageOnBuild
设置为true
,因此visual studio将自动生成nuget包
因此,如果您没有使用额外的dotnet-pack
任务来打包您的包,您可以在dotnet-build任务中添加msbuild参数-p:PackageId=
,如:
dotnet build -c Release -p:PackageId=<PackageId>
dotnet构建-c发行版-p:PackageId=
如果您有另一个dotnetpack
任务来打包您的包,@Martin的答案是正确的
注2:
当我们使用选项-p:PackageId
来更改包ID时,但不会更改AssemblyName。因此,生成的包的包ID
与其AssemblyName
不一致。当我们使用这个nuget包时,我们需要更加注意。或者我们也可以通过选项-p:AssemblyName=
更改AssemblyName
,使其与包id匹配
希望这有帮助。谢谢James,我不知道文件转换util,这将在将来派上用场。谢谢James,我不知道文件转换util,这将在将来派上用场。