2016-11-13 10 views
3

コマンドラインでNuGetパッケージを作成しようとしていますが、説明、作成者、タイトル、要約、リリースノート、所有者を設定する方法がわかりません。ここでNuget.exeパック警告:説明が指定されていません。 'Description'の使用

WARNING: Description was not specified. Using 'Description'. 
WARNING: Author was not specified. Using 'User'. 

は私のコマンドです:

NuGet.exe pack "<MyProjectPath>.csproj" -OutputDirectory "<MyOutputDirectory>" -Properties Configuration=release;Description="MyDescription";Authors="MeMeMe...MeToo";Title="MyTitle";Summary="MySummary";releaseNotes="MyChanges;"Owners="MyCompany" 

私はこれが重要かはわからないが、私はNuGet.exeを使用していますから来たパッケージが成功し、それはちょうど私にこの警告を与える作成しますVisual Studio Team Servicesからダウンロードした "CredentialProviderBundle.zip"ファイル。

+0

AssemblyInfo.csファイルにAssemblyCompanyとAssemblyDescriptionの値を指定していますか?もしそうなら、あなたは新しいプロジェクトでその問題を再現できますか? –

+0

私は新しいクラスライブラリプロジェクトを作成しました。私はAssemblyInfo.csファイルをまったく変更しませんでした。 AssemblyCompanyとAssemblyDescriptionは両方とも空の文字列です。同じ正確な問題。 – LorneCash

+0

次に、AssemblyCompanyとAssemblyDescriptionを指定しました。これでnuspecファイルに値が設定され、警告は表示されませんでしたが、AssemblyInfo.csの値が入力され、コマンドラインで指定した値ではありません。 summaryとreleaseNotesはnuspecファイルに追加されませんでした。 – LorneCash

答えて

2

実際にはほとんど問題はありません。

いくつかの前提条件がなければ質問をすることはできません。

  1. * .csprojと同じディレクトリに、同じ正確な名前の* .nuspecファイルが存在する必要があります。
  2. フォーム「$ TOKENNAME $」で
  3. でトークンが含まれている必要があり、コマンドラインを介してコマンドラインを介して取り込まれます
  4. すべての要素を設定しようとしているすべての要素を含んでいなければなりません* .nuspecファイルコマンドラインで* .nuspec要素名を指定する必要はなく、ドル記号(AKAトークン名)の間に含まれる値
  5. トークン名は、質問に記載されているすべてのプロパティの要素名と同じでもかまいませんDescription要素の例外です。 Description要素のトークンには「Description」という名前を付けることはできません。 「Desc」はここで完璧に機能します。

    <?xml version="1.0"?> 
    <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> 
        <metadata> 
         <id>$Id$</id> 
         <version>$Version$</version> 
         <title>$Title$</title> 
         <authors>$Authors$</authors> 
         <owners>$Owners$</owners> 
         <requireLicenseAcceptance>false</requireLicenseAcceptance> 
         <description>$Desc$</description> 
         <summary>$Summary$</summary> 
         <releaseNotes>$ReleaseNotes$</releaseNotes> 
         <copyright>Copyright © 2016</copyright> 
         <dependencies /> 
        </metadata> 
    </package> 
    

    イドとバージョンドン」(これは私が質問に記載されているコマンドと間違ってほとんど何も言わなかった理由です)ここでは、この特定の例* .nuspecファイルの例です

トークンは自動的にいずれかの方法で上書きされるため、トークンを持つ必要がありますが、傷つけることはありません。ここで

は、上記の指定されたとおり、あなたが* .nuspecファイルを使用する必要があり、コマンドラインです:

NuGet.exe pack "<MyProjectPath>.csproj" -OutputDirectory "<MyOutputDirectory>" -Properties Configuration=release;Desc="MyDescription";Authors="MeMeMe...MeToo";Title="MyTitle";Summary="MySummary";ReleaseNotes="MyChanges;"Owners="MyCompany" 
+2

しかし、もしあなたがnuspecファイルを使いたくないのであれば? 私は単にcsprojからパッキングするほうが好きです。私が使ったいくつかのバージョンのNugetは、AssemblyInfoからの説明を受け取りますが、他のバージョンでは説明しません。 私はcsprojからのパッキングが好きです。なぜなら、nuspecを更新する必要がないからです。依存バージョンを変更すると非常に退屈になる可能性があります。 csprojからのパッキングは依存関係のバージョンを自動的に更新するだけです。 –

0

私はこれはかなり古いですけど、私はしばらくの間、今日、この問題で苦労してきました。私は

nuget pack SomeRandom.csproj -Properties Configuration=Release

を走っていたし、私は「説明が必要とされる」エラーを得ていました。

は、私はその後nuspecファイルを削除し、私はそれがうまく働いたパックnuget実行したときに次にnuget spec SomeRandom.csproj

を実行して、新しいものを作成するために、nugetを取得することになりました。奇妙な、しかし誰かを助けることができます。

0

これらのどちらも完全にこれはあなたのソリューションのベースにあなたのためのPackage.nuspecファイルを作成します

nuget pack 

のコマンドを実行して、私を助けたので、ちょうど、この投稿に追加します。これが完了したら、ファイルの名前をNameOfProject.nuspecに変更する必要があります。だからもし私のプロジェクトがGameEngine.csprojと呼ばれるなら、nuspecというファイルの名前をGameEnginer.csprojに変更します。次に、このファイルを.csprojと同じフォルダに移動します(debug/releaseフォルダではなく、すべての手書きコードファイルを含む基本フォルダのみ)。そして、先に行くと、私は私のフォルダ構造は

nuget pack .\GameEngine\GameEngine.csproj 

ようになり、私のGameEngine.csprojコマンドを打ってみたかったのであれば

nuget pack RelativePathOfNameOfProject.csproj 

を実行に見える何かのように:

root/ 
├── Folder1/ 
├── Folder2/ 
├── GameEngine/ 
│ ├── bin/ 
│ ├── obj/ 
│ ├── Properties/ 
│ ├── Class1.cs 
│ ├── Class2.cs 
│ ├── GameEngine.nuspec 
│ └── GameEngine.csproj 
├── packages/ 
└── GameEngine.sln/ 

うまくいけば、間これらの答えは、あなたがそれを把握することができます:)

1

私はAssemblyInfoに説明を追加して以来、私はプロジェクトを再構築していませんでした。

私はプロジェクトディレクトリに<description>$description$</description>トークンを持つnuspecファイルを定義しました。私は

nuget pack MyProject.csproj 

を実行したとき、私はあなたが .csprojを詰めるが、それはあなたの最も最近のビルドであるため、私のAssemblyInfoが...

[assembly: AssemblyDescription("A DESCRIPTION.")]を...含まれているにもかかわらず、「説明が必要です」のエラーを見ています実際にNugetによってパッケージ化されています。そうだ。

関連する問題