Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2017 .targets文件在哪里,以及.net core是否支持该文件_Visual Studio 2017_.net Core_Nuget - Fatal编程技术网

Visual studio 2017 .targets文件在哪里,以及.net core是否支持该文件

Visual studio 2017 .targets文件在哪里,以及.net core是否支持该文件,visual-studio-2017,.net-core,nuget,Visual Studio 2017,.net Core,Nuget,我有一个定制的nuget包,它在\build文件夹中包含一个.targets文件。当我将其安装到.net framework项目中时,安装后,我们可以在项目文件中看到以下导入列表: <Import Project="..\packages\xxxx\build\xxxx.targets" Condition="Exists('..\packages\xxxx\build\xxxx.targets')" /> 但是,当我将其安装到.net core项目中时,我在项目文件中找不到此

我有一个定制的nuget包,它在
\build
文件夹中包含一个
.targets
文件。当我将其安装到.net framework项目中时,安装后,我们可以在项目文件中看到以下导入列表:

<Import Project="..\packages\xxxx\build\xxxx.targets" Condition="Exists('..\packages\xxxx\build\xxxx.targets')" />

但是,当我将其安装到.net core项目中时,我在项目文件中找不到此导入列表,在该文件中我可以找到我的
.targets
文件,如果.net core支持它

.targets文件在哪里,以及.net core是否支持该文件

.targets
文件包含在obj文件夹中的
project.assets.json
文件中,您可以检查
project.assets.json
文件,然后可以获得以下代码:

  "xxxx/1.0.0.0": {
    "type": "package",
    "build": {
      "build/xxxx.targets": {}
    }
  },
这个
.targets
文件也受.net核心项目的支持。作为测试,我在nuget包中创建了一个测试
.targets
文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="Test" AfterTargets="Build">
    <Message Text="This is Test Sample!"></Message>
  </Target> 
</Project>


将此nuget软件包安装到.net core项目后,然后构建该项目,我可以获得带有消息“
这是测试示例!

的输出窗口。对于使用软件包引用的项目,可以在两个文件中找到导入:

  • obj/ProjectName.nuget.g.props
  • obj/ProjectName.nuget.g.targets
用项目名称替换项目名称

例如,使用Xamarin.Forms的.NET标准项目将有一个.nuget.g.targets文件,该文件类似于:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
  </PropertyGroup>
  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
    <Import Project="$(NuGetPackageRoot)xamarin.forms/3.0.0.482510/build/netstandard2.0/Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)xamarin.forms/3.0.0.482510/build/netstandard2.0/Xamarin.Forms.targets')" />
    <Import Project="$(NuGetPackageRoot)netstandard.library/2.0.1/build/netstandard2.0/NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library/2.0.1/build/netstandard2.0/NETStandard.Library.targets')" />
  </ImportGroup>
</Project>

美元(所有项目)$(MSBuildThisFileFullPath)
.nuget.g.props文件将导入您正在使用的nuget包包含的任何.props文件