如何解决安装后,请在目标程序集中阅读nuget软件包库版本
如何在目标程序集中找到安装包库版本?
假设:
我们有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 )。
如果您知道实现此目标的方法,包括设置一些特殊属性,甚至使用文本文件,也欢迎使用任何其他自己的或棘手的方法。
解决方法
如果您的项目是新的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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。