gpt4 book ai didi

c# - 在 Nuget 的后期构建中获取版本

转载 作者:太空狗 更新时间:2023-10-29 22:09:33 24 4
gpt4 key购买 nike

代码:

if $(ConfigurationName) == Release (
cd $(ProjectDir)
nuget spec Entities -f
nuget pack DeusPak.Entities.csproj -Prop Configuration=Release
nuget push DeusPak.Entities.$(version).nupkg $(MYGET_API_KEY) -Source http://www.myget.org/F/lojaali/api/v2/package
)

我刚刚开始使用 NuGet,想知道如何在我的 NuGet 包中包含版本号。我目前正在将它硬编码到构建后事件中,这显然不是我想继续做的事情。有人可以帮忙吗?

这是我当前的构建后事件:

if $(ConfigurationName) == Release (
cd $(ProjectDir)
nuget spec Dev-f
nuget pack Dev.csproj -Prop Configuration=Release
nuget push Dev.1.0.0.0.nupkg $(MYGET_API_KEY) -Source http://www.myget.org/F/api/v2/package
)

更新:

好的,我已经成功地使用正确的自动递增版本号构建了 DLL:

if $(ConfigurationName) == Release (
cd $(ProjectDir)
nuget spec Dev -f
nuget pack Dev.csproj -Prop Configuration=Release
nuget push Dev.$(version).nupkg $(MYGET_API_KEY) -Source http://www.myget.org/F/api/v2/package
)

但是这个版本没有显示在我的 MyGet 包列表中。我如何让它显示在那里以便可以下载?还是只能通过单击“添加包”手动完成?

最佳答案

只是稍微扩展了 Carlos J López 提供的解决方案,我使用 AfterBuild 脚本实际调用 NuGet 并提供版本参数。

在我的例子中,我还在构建后事件中添加了“cd $(ProjectDir)”,这实际上发生在 AfterBuild 脚本之前。

干杯,

    <Target Name="AfterBuild" Condition="'$(Configuration)' == 'Release'">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
</GetAssemblyIdentity>
<Exec Command="$(SolutionDir)\.nuget\nuget pack $(ProjectName).nuspec -Version %(AssemblyVersion.Version)" />
<Message Text="$(SolutionDir)\.nuget\nuget pack $(ProjectName).nuspec -Version %(AssemblyVersion.Version)" Importance="high" />
</Target>

关于c# - 在 Nuget 的后期构建中获取版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com