如何在目标程序集中找到安装包库版本?
假设:
我们有NugetLib
和ConsumerApp
(将安装NugetLib)。
我正在使用 NugetLib 中的 .targets 文件,该文件的名称相同,安装后它将在目标计算机上运行。
内部NugetLib.targets文件:
<Target Name="Main" AfterTargets="Build">
<Message Text="$(NugetLibVersion)" Importance="high" />
</Target>
当前我的NugetLibVersion
值不正确,需要以某种方式进行设置。
使用$(PackageVersion)"
将无济于事,因为它不会读取并提供NugetLib版本,它将提供 ConsumerApp 版本(目标程序集,始终为 1.0。 0.0 )。
如果您知道实现此目标的方法,包括设置一些特殊属性,甚至使用文本文件,也欢迎使用任何其他自己的或棘手的方法。
答案 0 :(得分:1)
如果您的项目是新的sdk样式格式,则只需添加此自定义目标即可获取nuget版本:
<Target Name="PrintPackageReferences" AfterTargets="Build">
<Message Text="Dependencies:%0A @(PackageReference->'%(Identity), Version: %(Version)', '%0A ')" Importance="High" />
<CreateProperty Condition="'%(PackageReference.Identity)'=='NugetLib'" Value="%(PackageReference.Version)">
<Output TaskParameter="Value" PropertyName="NugetLibVersion" />
</CreateProperty>
<Message Importance="high" Text="$(NugetLibVersion)"></Message>
</Target>