首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过.targets消费包含PackageReference文件的nuget包

通过.targets消费包含PackageReference文件的nuget包
EN

Stack Overflow用户
提问于 2019-03-21 11:29:39
回答 1查看 1.5K关注 0票数 2

我有.NET452项目-让我们称之为Consumer.csproj,我想消费nuget,称之为SharedTargets,其中包含一些来自msbuild的自定义目标文件(SharedTargets.targets)。

我正在使用PackageReference格式,现在(与以前相比) nuget包正在恢复到共享文件夹(%userprofile%.nuget\packages),我不确定通过它引用它是否好(感觉不对)。

例:

代码语言:javascript
复制
<PackageReference Include="SharedTargets">
  <Version>1.0</Version>
</PackageReference>
<Import 
  Project="$(USERPROFILE)\.nuget\packages\SharedTargets\1.0\SharedTargets.targets"
/>

而且,这只适用于VS,运行于命令行(msbuild),我遇到了鸡蛋问题:

确认<Import>声明中的路径是正确的,并且文件存在于磁盘上。

显然,因为我需要先还原nuget,然后才能使用它:)

所以问题是:

  • 是否有更优雅的方法来解析项目文件中的nuget包的路径?
  • 是否有办法使msbuild成功(即在导入SharedTargets.target之前还原包)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-21 14:43:21

您不应该尝试手动导入通过NuGet分发的目标。

将.targets文件放入包内的build子文件夹中,并将其命名为SharedTargets.targets (package + .targets),NuGet将自动包含目标-对于packages.config项目,它将在安装时修改项目文件,而对于PackageReference项目,将通过修改obj\目录中隐式生成的目标文件来导入目标。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55279468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档