【问题标题】:NuGet Pack - The 'targetFramework' attribute is not declaredNuGet Pack - 未声明“targetFramework”属性
【发布时间】:2020-10-16 10:02:44
【问题描述】:

我正在尝试将解决方案中的项目转换为 nuget 包。我投入了一个 .nuspec ,它是从我创建的另一个 nuget 包中编辑的,并且所有内容似乎都指向正确的东西。我的项目在属性下显然有一个“目标框架”设置为 4.6.2,但是当我运行我的包进行打包时,我得到了 'targetFramework' 属性未声明错误。如果您认为有帮助,我会在此处发布日志。 (另外值得一提的是,我是通过 TeamCity 的 nuget CLI 构建步骤来实现的)

这是我清理过的 nuspec:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>PROJECTNAME.WebUI</id>
    <version>$version$</version>
    <title>PROJECTNAME.WebUI</title>
    <authors>COMPANYNAME</authors>
    <owners>COMPANYNAME</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>PROJECTNAME.WebUI</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2018, COMPANYNAME</copyright>
    <dependencies>
      <dependency id="AntiXSS" version="4.2.1" targetFramework="net462" />
      <dependency id="Aspose.Cells" version="8.7.0" targetFramework="net462" />
      <dependency id="Aspose.Email" version="6.2.0" targetFramework="net462" />
      <dependency id="Aspose.Pdf" version="11.3.0" targetFramework="net462" />
      <dependency id="Aspose.Words" version="16.1.0" targetFramework="net462" />
      <dependency id="CuteEditor" version="6.7.1.1" targetFramework="net462" />
      <dependency id="EO.Pdf" version="15.3.1.0" targetFramework="net462" />
    </dependencies>
  </metadata>
  <files>
  </files>
</package>

【问题讨论】:

  • 你的 nuget 版本是什么?您是否尝试将Verbosity 设置为detailed
  • 我没有,你认为这会有所作为吗?

标签: c# nuget teamcity


【解决方案1】:

来自documentation about dependencies

您可以使用此语法指定多个目标

<?xml version="1.0"?>
<package >
  <metadata>
    <id>PROJECTNAME.WebUI</id>
    <version>$version$</version>
    <title>PROJECTNAME.WebUI</title>
    <authors>COMPANYNAME</authors>
    <owners>COMPANYNAME</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>PROJECTNAME.WebUI</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2018, COMPANYNAME</copyright>
    <dependencies>
      <group targetFramework="net462">
        <dependency id="AntiXSS" version="4.2.1" />
        <dependency id="Aspose.Cells" version="8.7.0" />
        <dependency id="Aspose.Email" version="6.2.0" />
        <dependency id="Aspose.Pdf" version="11.3.0" />
        <dependency id="Aspose.Words" version="16.1.0" />
        <dependency id="CuteEditor" version="6.7.1.1" />
        <dependency id="EO.Pdf" version="15.3.1.0" />        
      </group>
    </dependencies>
  </metadata>
  <files>
  </files>
</package>

或者,如果它是一个简单的库,目标之间没有差异,那么不要对目标框架进行任何引用。

<?xml version="1.0"?>
<package >
  <metadata>
    <id>PROJECTNAME.WebUI</id>
    <version>$version$</version>
    <title>PROJECTNAME.WebUI</title>
    <authors>COMPANYNAME</authors>
    <owners>COMPANYNAME</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>PROJECTNAME.WebUI</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2018, COMPANYNAME</copyright>
    <dependencies>
      <dependency id="AntiXSS" version="4.2.1" />
      <dependency id="Aspose.Cells" version="8.7.0" />
      <dependency id="Aspose.Email" version="6.2.0" />
      <dependency id="Aspose.Pdf" version="11.3.0" />
      <dependency id="Aspose.Words" version="16.1.0" />
      <dependency id="CuteEditor" version="6.7.1.1" />
      <dependency id="EO.Pdf" version="15.3.1.0" />        
    </dependencies>
  </metadata>
  <files>
  </files>
</package>

【讨论】:

  • 帮助清理我的代码!但仍然出现错误,使用相同的“未声明'targetFramework'属性”
  • 实际上我这样做了,它神奇地起作用。不知道为什么,但谢谢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多