我有一个.NET452项目-让我称它为Consumer.csproj
我想消耗nuget让我们称它为SharedTargets
,其中包含一些来自msbuild的自定义目标文件(SharedTargets.targets
)。
我正在使用PackageReference
格式,现在(与以前相比)nuget包正在还原到共享文件夹(%userprofile%.nuget \ packages)中,我不确定是否最好通过它引用它(感觉不对)。
例如:
<PackageReference Include="SharedTargets">
<Version>1.0</Version>
</PackageReference>
<Import
Project="$(USERPROFILE)\.nuget\packages\SharedTargets\1.0\SharedTargets.targets"
/>
这也仅在VS中起作用,从命令行(msbuild
运行),我遇到了鸡蛋问题:
确认
<Import>
声明中的路径正确,并且 该文件存在于磁盘上。
很明显,因为我需要先恢复nuget才能使用它:)
那么问题:
SharedTargets.target
之前还原软件包)答案 0 :(得分:1)
您不应尝试手动导入通过NuGet分发的目标。
将.targets文件放入包内的build
子文件夹中,并将其命名为SharedTargets.targets
(包ID + .targets
),NuGet将自动包含目标-对于packages.config项目它将在安装时修改项目文件,对于PackageReference项目,将通过修改obj\
目录中隐式生成的目标文件来导入目标。