Msbuild 通过PackageReference使用包含.targets文件的nuget包
我有.NET452项目-让我们调用它Msbuild 通过PackageReference使用包含.targets文件的nuget包,msbuild,nuget,Msbuild,Nuget,我有.NET452项目-让我们调用它Consumer.csproj,我想使用nuget。让我们调用它SharedTargets,它包含一些来自msbuild的自定义目标文件(SharedTargets.targets) 我正在使用PackageReference格式,现在(与以前相比)nuget软件包正在还原到共享文件夹(%userprofile%.nuget\packages),我不确定通过它引用它是否是个好主意(感觉不对) 例如: 1 此外,这仅适用于VS,从命令行(msbuild)运行
Consumer.csproj
,我想使用nuget。让我们调用它SharedTargets
,它包含一些来自msbuild的自定义目标文件(SharedTargets.targets
)
我正在使用PackageReference
格式,现在(与以前相比)nuget软件包正在还原到共享文件夹(%userprofile%.nuget\packages),我不确定通过它引用它是否是个好主意(感觉不对)
例如:
1
此外,这仅适用于VS,从命令行(msbuild
)运行此命令时,我遇到了鸡蛋问题:
确认
声明中的路径正确,并且
该文件存在于磁盘上
显然,因为我需要先恢复nuget,然后才能使用它:)
因此,问题:
- 有没有更优雅的方法来解析项目文件中nuget包的路径
- 是否有方法使msbuild成功(即在导入
之前还原包)SharedTargets.target
生成
子文件夹中,并将其命名为共享目标.targets
(包id+.targets
)NuGet将自动包含目标-对于packages.config项目,它将在安装时修改项目文件;对于PackageReference项目,目标将通过修改obj\
目录中隐式生成的目标文件导入。谢谢,这很管用:)如果你在忙,我有一个后续问题,如何正确地引用这些目标文件中的.cs文件-ref:
<PackageReference Include="SharedTargets">
<Version>1.0</Version>
</PackageReference>
<Import
Project="$(USERPROFILE)\.nuget\packages\SharedTargets\1.0\SharedTargets.targets"
/>