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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nuspec始终生成占位符模板文件相关的知识,希望对你有一定的参考价值。

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

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

<?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>

我不知道为什么要向我倾倒相同的内容。

有任何想法吗?

答案

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

你应该替换它们。

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

另一答案

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

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

我个人觉得有点莫名其妙,为什么他们会这样做,.nuspec有时包含完全包含文件的文字,而其他时间包含必须处理的模板,以生成另一个'真正的'nuspec文件(在.pkg内部)并且不能轻易阅读,请注意)。

干杯!

以上是关于nuspec始终生成占位符模板文件的主要内容,如果未能解决你的问题,请参考以下文章

配置文件或者模板中的占位符替换工具类

freemarker根据模板生成word文件实现导出功能

freemarker根据模板生成word文件实现导出功能

带有模板占位符的 Url Helper 路由

布局中的片段占位符

text 占位符和条件布局的模板代码