2016-11-08 10 views
1

パッケージが正常にビルドされ、VSTSのパッケージフィードにアップロードされますが、パッケージの説明と作成者を編集して、設定値がパッケージフィード。私は、追加のビルドプロパティの下NuGetパッケージャで私のコンテンツを入れて、私は、ログファイルを見ると、私はこれを参照してください読んだものから、VSTS自動ビルドNuGet Packager/Publisher

...NuGet.exe pack "...csproj" -OutputDirectory "..." -Properties Configuration=release;Description="My Description";Authors="Me";Owners="My Company" 

私は(私はこの権利をしたと考えている文書からではなく、明らかに私はしなかった)。 「追加のビルドプロパティ」とNuGetの引数の関係については少し混乱しているようです。

もう一度私の目標は、Visual Studio内のNuGet Package Managerから表示可能に設定された説明と作成者を取得することです。

答えて

1

があり、それは、パッケージを建物の場合は(1 Visual Studioのデフォルト値3 Nuget出版社と2 Nugetパッケージャの構築)を作成しますNuGet Packagerビルドステップで問題はありません。しかし、2つのことを変える必要があります。あなたは* .nuspecファイルがにチェックインする必要があり、同じ名前を持つと、当然のソリューションファイルと同じディレクトリにあるトークン化* .nuspecファイルが存在でなければならやっているようにプロパティを指定するために

  1. VSTS/TFS。
  2. 説明のトークン名は説明にできません。

*の詳細については、nuspecファイルはここに解決策を参照してください。

Nuget.exe pack WARNING: Description was not specified. Using 'Description'

2

.nuspecファイルに従ってパッケージを作成できます。 手順:

  1. プロジェクト(コマンド:ナゲット仕様)の.nuspecファイルを生成します。例えば

:(著者と概要トークンを含める)

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>CommLib1</id> 
    <version>1.0.0.6</version> 
    <title>CommLib1</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引数(ステップ1で、トークン)を指定Nugetパッケージャビルドステップの enter image description here
  • アップデート1:

    一般に、プロジェクトのAssemblyInfo.csファイルを更新するだけです(Author => AssemblyCompany;説明=> AssemblyDescription; Version => AssemblyVersion)、アセンブリからメタデータを取得できない限り、このデータに従ってパッケージを作成します(プロジェクトにはこの問題があります)。だから、

    、ステップ:

    1. ローカルの/ビルドマシンに直接nuget.exeコマンドでパッケージを作成することによって、必要なメタデータを取得する可能性が確認nugetを作る(nugetパック[XX] .csproj)

    2. ビルド定義

    +0

    を私はそれをやって考えたが、私は手動* .NuSpecファイル内のバージョンを更新する必要がありますする必要はありませんでした。私はそこに変数 "$(v)"を持っていますが、AssemblyVersionプロパティからその変数値の値を引き出す方法はありますか?私のソリューションは単一のクラスライブラリであり、共通の内部クラスライブラリを簡単に公開できるようにテンプレートを作成しようとしています。 – LorneCash

    +0

    @LorneCashはい、引数にバージョンを指定できます。 (ビルド定義で変数値を使用しています) –

    +0

    @LorneCashアセンブリからメタデータを取得し、VSTSビルドを使用してビルド、パック、およびパブリッシュできる場合は、AssemblyInfo.csファイルを直接更新できます。私は自分の答えを更新しました。 –

    関連する問題