Nuget nuspec始终在生成占位符模板文件

Nuget nuspec始终在生成占位符模板文件,nuget,Nuget,我正在使用NuGet工具,以便使用我的.csproj创建.nuspec 问题始终是生成一个带有占位符模板的文件: <?xml version="1.0"?> <package > <metadata> <id>$id$</id> <version>$version$</version> <title>$title$</title> <authors

我正在使用
NuGet
工具,以便使用我的
.csproj
创建
.nuspec

问题始终是生成一个带有占位符模板的文件:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
</package>

$id$
$version$
$title$
$author$
$author$
http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE
http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE
http://ICON_URL_HERE_OR_DELETE_THIS_LINE
假的
$description$
此版本包中所做更改的摘要。
版权所有2016
Tag1 Tag2
我不知道为什么要把同样的内容扔给我


有什么想法吗?

如果你看一下NuGet源代码,这就是它目前的实现方式。它总是添加那些占位符

你应该替换它们


nuget.exe spec命令无法确定它们应该是什么,它会为您可能想要指定的值添加占位符。

如果您查看nuget源代码,这就是它当前的实现方式。它总是添加那些占位符

你应该替换它们


nuget.exe spec命令无法确定它们应该是什么,它会为您可能想要指定的值添加占位符。

不确定您自己是否已经回答了这个问题,但我也在考虑同样的问题。我在AssemblyInfo.cs文件中有一些值,对于它们为什么没有被注入到.nuspec文件中感到困惑。我想我们也期待着同样的事情:运行
nuget spec
nuget pack[csproj file]
将生成一个新的nuspec文件,其中包含注入的参数。 事实证明,马特是完全正确的,这不是它的工作原理

关键的答案是,实际上,这些值被注入到包中。稍后,当您尝试导入包时,您将发现根据此表正确地注入了AssemblyInfo中的值。(还请注意,某些元素不能以这种方式注入!)

就我个人而言,我觉得他们这样做有点令人困惑,因为.nuspec有时包含完全构成文件的文本,而其他时候包含必须经过处理才能生成另一个“真正”的nuspec文件的模板(注意,它是.pkg的内部文件,不容易读取)


干杯

我不确定你自己是否已经回答了这个问题,但我也在想同样的问题。我在AssemblyInfo.cs文件中有一些值,对于它们为什么没有被注入到.nuspec文件中感到困惑。我想我们也期待着同样的事情:运行
nuget spec
nuget pack[csproj file]
将生成一个新的nuspec文件,其中包含注入的参数。 事实证明,马特是完全正确的,这不是它的工作原理

关键的答案是,实际上,这些值被注入到包中。稍后,当您尝试导入包时,您将发现根据此表正确地注入了AssemblyInfo中的值。(还请注意,某些元素不能以这种方式注入!)

就我个人而言,我觉得他们这样做有点令人困惑,因为.nuspec有时包含完全构成文件的文本,而其他时候包含必须经过处理才能生成另一个“真正”的nuspec文件的模板(注意,它是.pkg的内部文件,不容易读取)


干杯

谢谢@Matt。那么,如果它总是生成相同的内容,为什么它会请求一个可选参数来设置
csproj
参数呢?当您传递一个.csproj时,它会在.nuspec文件中放置一些占位符,例如$id$,当您生成NuGet包时,NuGet将用项目中的信息替换该占位符。其他信息,如项目url,无法从项目中获得。这确实是我想要解决的问题<代码>nuget规范帮助说明了您写下的内容。然而,它总是生成相同的占位符来填充内容。据我所知,我只能从dll或csproj目录生成
spec
。我不知道我做错了什么…你没有做错什么。这就是NuGet目前的实现方式。谢谢@Matt。那么,如果它总是生成相同的内容,为什么它会请求一个可选参数来设置
csproj
参数呢?当您传递一个.csproj时,它会在.nuspec文件中放置一些占位符,例如$id$,当您生成NuGet包时,NuGet将用项目中的信息替换该占位符。其他信息,如项目url,无法从项目中获得。这确实是我想要解决的问题<代码>nuget规范帮助说明了您写下的内容。然而,它总是生成相同的占位符来填充内容。据我所知,我只能从dll或csproj目录生成
spec
。我不知道我做错了什么…你没有做错什么。这就是NuGet目前的实现方式。