Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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
从TFS构建过程创建和发布nuget包?_Tfs_Nuget_Publish - Fatal编程技术网

从TFS构建过程创建和发布nuget包?

从TFS构建过程创建和发布nuget包?,tfs,nuget,publish,Tfs,Nuget,Publish,我希望在编译完程序集后创建nuget包(并将它们部署到我的私有nuget存储库) 我尝试使用NuGetter设置所有内容,但该项目处于非活动状态,只允许您构建一个包/项目,而我需要一个包/程序集 现在我有点困了。我目前正在查看他们的源代码,希望它对我更有用 我在这里同时要问的是:是否有人拥有从TFS 2012和/或TFS2010发布/创建nuget包的完整解决方案,用于多包解决方案 I tried setting everything up by using NuGetter, but that

我希望在编译完程序集后创建nuget包(并将它们部署到我的私有nuget存储库)

我尝试使用NuGetter设置所有内容,但该项目处于非活动状态,只允许您构建一个包/项目,而我需要一个包/程序集

现在我有点困了。我目前正在查看他们的源代码,希望它对我更有用

我在这里同时要问的是:是否有人拥有从TFS 2012和/或TFS2010发布/创建nuget包的完整解决方案,用于多包解决方案

I tried setting everything up by using NuGetter, but that project is kind of inactive and only allows you to build one package/project while I need one package/assembly.
NuGetter确实支持多个包,我现在只使用multiple-package方法,因为您可以将它用于单个或多个包

通过使用包xml文件,可以指定多个包

<?xml version="1.0"?>
<NuGetterPackages>
  <NuGetterPackage name="Package1">
    <NuSpecFilePath>Package1.nuspec</NuSpecFilePath>
    <BasePath>NuGetPrePackage_Package1</BasePath>
    <InvokePowerShell>True</InvokePowerShell>
    <PowerShellScriptPath>PrePackage_Package1.ps1</PowerShellScriptPath>
    <InvokePush>True</InvokePush>
    <OutputDirectory>NuGetPackage</OutputDirectory>
    <PushDestination>\\MYFeedLoc\NugetFeed</PushDestination>
    <Version>1.0.J.B</Version>
  </NuGetterPackage>
<NuGetterPackage name="Package2">
    <NuSpecFilePath>Package2.nuspec</NuSpecFilePath>
    <BasePath>NuGetPrePackage_Package2</BasePath>
    <InvokePowerShell>True</InvokePowerShell>
    <PowerShellScriptPath>PrePackage_Package2.ps1</PowerShellScriptPath>
    <InvokePush>True</InvokePush>
    <OutputDirectory>NuGetPackage</OutputDirectory>
    <PushDestination>\\MYFeedLoc\NugetFeed</PushDestination>
    <Version>1.0.J.B</Version>
  </NuGetterPackage>
</NuGetterPackages>

包装1.nuspec
NuGetPrePackage_Package1
真的
预包装\u包装1.ps1
真的
NuGetPackage
\\MYFeedLoc\nGetFeed
1.0.J.B
包装2.nuspec
NuGetPrePackage_包装2
真的
预包装\u包装2.ps1
真的
NuGetPackage
\\MYFeedLoc\nGetFeed
1.0.J.B
在源代码管理下,我有packages.xml文件,然后每个Nuget包有一个powershell文件和一个nuspec文件

Nuspec文件如下所示

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Package1</id>
    <version>$version$</version>
    <title>Package1</title>
    <authors>Package1 Author</authors>
    <owners>Package1 Owner</owners>
    <iconUrl>http://Iconserver/nextlogo.png</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Description of Contents</description>
    <releaseNotes>First release of the package.</releaseNotes>
    <copyright>Copyright 2014</copyright>
    <tags>Space Seperated Tags</tags>
    <dependencies>
      <dependency id="AnyLatestDependencyIMayHAve" version=""/> 
      <dependency id="AFixedDependencyIMayHAve" version="[1.0.0]"/>
    </dependencies>
  </metadata>
</package>

包装1
$version$
包装1

这就是它的样子。谢谢:)。但是为什么要为每个项目指定一个nuspec文件呢?这是怎么回事?据我所知,这些文件是在构建包之前创建的?!我们已经扩展了答案。一切都是事先创造的。构建运行。将创建一个“BasePath”文件夹,powershell脚本将在其中创建所需的结构,然后将包dll复制到该结构中。然后针对结构运行NuGet以创建包您是否检查了ALM Rangers的“TFS版本控制指南-使用NuGet进行依赖关系管理”?