2017-06-28 6 views
0

新しいビジュアルスタジオプロジェクトにナゲットパッケージをインストールするプロセスを自動化しようとしています。私の考えは、これらのパッケージをインストールするために実行できるカスタムファイルにパッケージを指定することによって、すべてのパッケージをソースにする時間を短縮することです。したがって、毎回新しいプロジェクトにこのファイルをインクルードし、毎回実行するように要求するだけです。私はナゲットには非常に新しく、多くの事前知識なしにこの作業を割り当てられています。私はパッケージに関するメタデータが入っているので、.nuspecルートが正しい方向に私を導くだろうと私は勧められました。コンシューマーはパッケージの.nuspecファイルに直接アクセスできないため、このオートメーションの一部としてどのように使用できるのか理解できません。私はまた、自動パッケージの復元について聞いたことがあるが、それは紛失した参照のためだけに機能するので、私はそれが必ずしもそのプロジェクトと何かを参照していない新しいプロジェクトでどのように役立つかわかりません。.nuspecファイル/スクリプトを使用して、新しいプロジェクトにナゲットパッケージを自動的にインストールします。

答えて

0

Nugetがすでにインストールの自動化をサポートし、私たちは、あなたは、Visual Studioでnugetパッケージを追加するこの

毎回を達成するためにnugetコマンドラインを使用することができ、それはpackages.configファイルと呼ばれるファイルに追加取得。

など。このようになります

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Autofac" version="3.5.2" targetFramework="net451" /> 
    <package id="Microsoft.Owin" version="3.1.0" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Host.HttpListener" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net452" /> 
    <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net451" /> 
    <package id="Owin" version="1.0" targetFramework="net451" /> 
    <package id="Topshelf" version="3.2.0" targetFramework="net451" /> 
</packages> 

解決策に含まれるすべてのプロジェクトにはpackages.configファイルがあります。すべてのプロジェクトの親フォルダに移動し、単にcomand 'nuget restore'を実行すると、すべてのパッケージが取得されます。ウルリッヒポインティング@Martin

感謝を:

はこれが機能するためには、nuget.exeはhereを見つけることができますnugetコマンドライン上downloaded別途.More詳細にする必要があり、ここでcommandline reference

編集です上記の方法はプロジェクトファイルへの参照を自動的に追加しません、それはパッケージフォルダにのみパッケージを取得します。VS2017では、@マーティンの回答アドレスがサポートされています。

希望すると便利です。

+0

パッケージをドロップすることはできません。configファイルを新しいプロジェクトに追加するには、パッケージのインストールでcsprojファイルを編集する必要があり、プロジェクトの 'targetFramework'が一致しない可能性があります。 –

+0

これを指摘していただきありがとうございます。参考シナリオを追加している新しいプロジェクトについてはわかりませんでした。 –

0

packages.configファイルを新しいプロジェクトにドロップするだけで、正常に動作するとは限りません。インストール時、NuGetはプロジェクトファイル(.csproj)に参照を組み込み、見つからないファイル(および更新/競合ロジック)のダウンロードにpackages.configを使用します。

<Project> 
    <ItemGroup> 
    <PackageReference Include="Autofac" Version="3.5.2 /> 
    <PackageReference Include="Topshelf" Version="3.2.0 /> 
    </ItemGroup> 
</Project> 

VS 2017(リリースし、安定したバージョン15.2以降)と参照プロジェクトのPackageReferenceスタイルを使用して、あなたは単にあなたが必要とするすべてのプロジェクトを含むソリューションのルートにDirectory.Build.propsファイルをドロップすることができますこれにより、.csprojファイルを修正する必要なく、これらのNuGetパッケージがソリューション内のすべての新しいプロジェクトに追加されます。 (このファイルを追加/編集した後は、ソリューションを閉じて再度開く必要があります。これは、ファイルを編集するためのVS 2017 15.3アップデートで修正されるはずです)。

関連する問題