gpt4 book ai didi

nuget - 获取 NuGet 包的位置

转载 作者:行者123 更新时间:2023-12-04 01:58:17 25 4
gpt4 key购买 nike

在我的公司,我们有一些自制工具,用于构建其他项目时的构建过程。
我需要在 VS2017 BeforeBuild 和 AfterBuild 脚本中使用这些工具,并且它也必须在 MS Build 中工作。

这些工具作为 NuGet 包分发,我们的大多数项目都移植到 PackageReference 而不是 Packages.config

我知道当前安装的 MyTool(XYZ 版)在 C:\Users\Me\.nuget\packages\MyTool\XYZ,但是我如何在我的项目文件中引用它,所以它在下一个版本时也能工作释放?

我认为 C:\Users\Me\.nuget\packages 可以用 $(NuGetPackageRoot) 替换,但是如何始终引用项目中安装的版本?

一些 Nuget 包似乎对 obj 文件夹中的 MyProject.csproj.nuget.g.props 和 MyProject.csproj.nuget.g.targets 做出了贡献,但我几乎找不到关于这些文件的有用信息。

最佳答案

在目标内部,您可以使用它来创建基于项目的属性:

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="11.0.1" />
</ItemGroup>

<Target Name="PrintStuff" AfterTargets="AfterBuild">
<PropertyGroup>
<NewtonsoftJsonVersion Condition="'%(PackageReference.Identity)' == 'Newtonsoft.Json'">%(PackageReference.Version)</NewtonsoftJsonVersion>
<NewtonsoftJsonPath>$(NuGetPackageRoot)newtonsoft.json\$(NewtonsoftJsonVersion)\</NewtonsoftJsonPath>
</PropertyGroup>
<Message Importance="high" Text="JSON.NET version: $(NewtonsoftJsonVersion)" />
<Message Importance="high" Text="JSON.NET path: $(NewtonsoftJsonPath)" />
<Exec Command="ls" WorkingDirectory="$(NewtonsoftJsonPath)" Condition="'$(OS)' != 'Windows_NT'" />
<Exec Command="dir" WorkingDirectory="$(NewtonsoftJsonPath)" Condition="'$(OS)' == 'Windows_NT'" />
</Target>

关于nuget - 获取 NuGet 包的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49117259/

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