我使用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>
我不知道为什么要向我倾倒相同的内容。
有什么想法吗?
答案 0 :(得分:0)
如果查看NuGet源代码,这就是当前实现的方式。它总是添加这些占位符。
你应该替换它们。
nuget.exe spec命令无法确定它们应该是什么,它会为您可能想要指定的值添加占位符。
答案 1 :(得分:0)
不确定你自己是否已经回答过这个问题,但我在想同样的事情。我在AssemblyInfo.cs文件中有一些值,并且对于为什么它们没有被注入.nuspec文件感到困惑。我认为我们期待同样的事情:运行nuget spec
或nuget pack [csproj file]
会生成一个带有参数的新nuspec文件。
事实证明,马特是完全正确的,它不是如何运作的。
关键答案是,实际上,值是注入到包中。稍后,当您尝试导入包时,您将发现根据此表正确注入AssemblyInfo中的值。 (另请注意,某些元素不能以这种方式注入!)
就我个人而言,我觉得有些令人困惑,为什么他们会这样做,其中.nuspec有时包含完全包含文件的文字,而其他时间包含必须处理的模板,以产生另一个真正的&#39; nuspec文件(它是.pkg的内部文件,不能轻易阅读,请注意)。
干杯!