安装后,请在目标程序集中阅读nuget软件包库版本

问题描述

如何在目标程序集中找到安装包库版本?

假设:

我们有NugetLibConsumerApp(将安装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>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...