Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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
.net tfs build-仅使用nuspec的nuget包项目_.net_Visual Studio_Build_Nuget - Fatal编程技术网

.net tfs build-仅使用nuspec的nuget包项目

.net tfs build-仅使用nuspec的nuget包项目,.net,visual-studio,build,nuget,.net,Visual Studio,Build,Nuget,我在TFS 2015中有一个构建定义 此生成定义由主控提交触发,应生成项目、运行所有测试并发布包含的.nuspec文件的项目的Nuget包 我的问题是,我只想打包包含.nuspec文件的项目,而不是任何项目 我知道我可以在路径/模式中指定“***.nuspec”,但是我必须显式地指定id、title、version、desc等。。。对于每一个nuspec,我希望它从组件信息中获取 有没有办法得到它 Arik。生成时,.nuspec将不获取程序集信息。我们需要修改id、标题、版本等。。。手动 因

我在TFS 2015中有一个构建定义

此生成定义由主控提交触发,应生成项目、运行所有测试并发布包含.nuspec文件的项目的Nuget包

我的问题是,我只想打包包含.nuspec文件的项目,而不是任何项目

我知道我可以在路径/模式中指定“***.nuspec”,但是我必须显式地指定id、title、version、desc等。。。对于每一个nuspec,我希望它从组件信息中获取

有没有办法得到它


Arik。

生成时,.nuspec将不获取程序集信息。我们需要修改id、标题、版本等。。。手动


因此,我们只需要直接打包.csproj文件,它将获取生成的包的程序集信息。

您可以创建一个命令行任务来手动执行此操作:

for /f "delims=" %%a in ('dir /s/b *.nuspec') do nuget pack %%~dpa%%~na.csproj -IncludeReferencedProjects -Properties Configuration=Release
您还可以使用最小nuspec文件(对于假定为NUGET包的每个项目都相同)来利用AssemblyInfo中的元数据:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>Puresharp</authors>
    <owners>Puresharp</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$id$.$version$</description>
    <releaseNotes></releaseNotes>
    <copyright>$copyright$</copyright>
    <tags>Puresharp</tags>
  </metadata>
</package>

$id$
$version$
$title$
纯净的
纯净的
假的
$id$.$版本$
$版权所有$
纯净的

你的意思是:“知道我可以在路径/模式中指定“***.nuspec”?@JeroenHeier你说得对,我已经解决了。谢谢。使用csproj文件有很多好处(例如自动查找包依赖项)。如果您不想创建自定义/自定义任务,使用项目名称可能更经济。@JeroenHeier所以我应该继续在nuget packager中使用.csproj文件吗?那么我该如何解决我的问题呢?您可以更改您使用的模式和/或使用不同的模式/项目文件添加更多NuGet packager任务,但如果我修改.nuspec文件,我将不得不继续维护每个版本,这不是我所希望的,我希望包信息可以从组装信息中获取,这样我就不必维护它两次。我可以将nuspec创建添加为构建定义的一部分,但这样我就无法决定哪些项目需要作为nuget包,哪些项目不需要,该解决方案的所有项目都将发布到NUGETT。这是当前版本的nuget在为包项目生成nuspec文件时的默认操作。如果您不能决定哪些项目将作为nuget包生成,为什么要为每个项目创建.nuspec文件?