2016-05-21 9 views
0

私は少し問題があります。私はあなたが心に何かを持っている場合は、このタイトルでどんな質問タイトルが適切かどうか分かりません。自由に編集してください。参考文献とナゲットパッケージの扱い

ので、基本的にこれが現在の状況は次のとおりです。現在、私は4つのプロジェクト持って(ない本当の名前はなく、アーキテクチャは同じです)

  1. Client(メインクライアントロジック)
  2. Server.Main(メインサーバーロジック)
  3. Server.Extensions(ヘルパーなどの一部の機能はスタンドアロンで使用できますね、私はNuget・パッケージを作成Server.Mainから何か)クライアント&サーバ間の
  4. Shared(共有コード)プロジェクトのそれぞれについて

に依存していると私のオンラインリポジトリにアップロードしてはいけません。このリポジトリは、開発目的のためだけに現在は非公開です。ここで

は何Nuget-のパッケージを使用してどのようなプロジェクト、要約です:

  1. ClientSharedのNugetパッケージを使用しています。
  2. Server.Mainは、Shared & Server ExtensionsのNugetパッケージを使用しています。
  3. Server.Extensionsは、SharedのNugetパッケージを使用しています。

これは現時点で問題なく動作しています...テスト目的で私のリポジトリを簡単に更新して、私のパッケージの新しく更新されたバージョンを使用することができます。私は今、他の人と自分のプロジェクトを共有したいと思います

(例えばGitHubのコミュニティ):

しかし、ここでは、問題が来ます。しかし、彼らがプロジェクトを手に入れたとき、彼らは私のプライベートレポジトリへのアクセス権を持っておらず、ナゲットパッケージマネージャーはパッケージを見つけられません。

さらに私のアーキテクチャには別の問題があります。 Sharedでは、Client & Serverは常に固定/変更されたローカルコードではなく、リポジトリからのNugetパッケージを使用するため、変更をテストすることはできません。

他の3つのプロジェクトでSharedプロジェクトを直接参照することを考えました。それは、私がSharedを更新するたびに、他の3つのプロジェクトも同様にアップデートしているということですか?

私の考えは、私の全体的なナゲットアーキテクチャは間違っていると思います。しかし、私はどのように正しく/より良い方法でそれを行うか分からない。誰かが私のためのよりよいアプローチを持っていますか?

答えて

1

これは必ずしも間違っているとは言えません。誰かがあなたのソリューションを消費して作業しようとしている場合、最小限のオーバーヘッドがあり、ビルドや後続のデバッグセッション中に早期に問題をキャッチする可能性が高いため、P2P(プロジェクトからプロジェクト)

ビルド中に3つすべてのNuGetパッケージを簡単に作成し、ポストビルドステップでパッケージ化するか、NuProjのようなツールを使用して統合テストを行うことができます。

+0

ありがとうございました:)私はちょうど、どのようにナゲットパッケージ内の他のナゲットパッケージを参照するかを考え出しました。私はいつも自動的にPostBuildスクリプトを使用していましたが、Nuget Package Explorerを使用して手動でビルドを開始しようとします。そうすれば、ソースコードからすべてのナゲットを削除できるようになると思いますので、いつでもそれをgithubにアップロードできます。 :) – Jannik