2012-02-29 16 views
10

私はいくつかのナゲットのものを研究しています。私はNugetが.exeコマンドを配布するのに適しているのか、それともNugetがプロジェクトへの参照用にしか使われないのか疑問に思っています(もちろん、おそらくdllの代わりにexeにリンクすることもできます) IIRC)。明らかに、私は簡単にコンソールアプリケーションを作成し、Nugetパッケージを参照することができますが、これがいつも必要であるかどうかは疑問です。また、宝石とは異なり、宝石のローカルレポはないようですので、.exe(s)はNugetパッケージの意図された使用ではないようですが、なぜこのように制限する必要があるのか​​わかりませんファッション - または私は何かが欠けている?本当にexeコマンドであるNugetパッケージ?

答えて

17

実行可能プログラムをNuGetパッケージに含めることができます。 Creating and Publishing a Packageから:

ツール - パッケージのtoolsフォルダは、パッケージマネージャコンソールからアクセスPowerShellのスクリプトやプログラム のためです。フォルダがターゲット プロジェクトにコピーされた後、 `$ env:Path(PATH) '環境変数に追加されます。

いくつかは、あなたがこれを行うために選択した場合は、しかし、知っておくべきあります

  • あなたはRubyGemsのとは異なり、NuGetは、システム - の概念を持っていない、ということが正しいですまたは機械レベルのパッケージ。パッケージは単一のプロジェクトをターゲットにするか、ソリューションに(まれに)ソリューションをターゲットにします。したがって、この実行可能ファイルは、それが使用されている各ソリューションのパッケージのフォルダに置かれます。
  • NuGet Visual Studio拡張機能は、パッケージのツールフォルダのパスをコンソールのPATH環境変数に追加するので、その中のプログラムを簡単に実行できます。 Visual Studioの外で、他のNuGetクライアント(nuget.exeなど)を使用すると、自動PATH処理が行われないため、プログラムへのパスを取得する必要があります。
  • このNuGet機能は、プロジェクトの開発(コードジェネレータ、プロジェクトファイルを操作するツール、エミュレータや開発サーバなどのフレームワークを補完するツールなど)に関係するスクリプトや実行可能プログラム用に設計されています。この機能を設計されていない方法で確実に使用することはできますが、実際にはプロジェクト開発に関係のないシステムプログラムを提供したい場合はChocolatey、 "a Machine Package Manager"いくぶんapt-getと似ていますが、窓を念頭に置いて作られています。
+0

私はChocolateyについて聞いたことがありませんでした。 ;-) – lucidquiet

+1

実行ファイルがlibフォルダのアセンブリに依存する場合、それらがツールフォルダに複製されていない限り、ロードできません。 –

関連する問題