web-dev-qa-db-ja.com

シンボリックリンクは、プロジェクトを別のプロジェクトに「インポート」する良い方法ですか?

私はプロジェクトBをプロジェクトAにインポートする方法を考えていました。どちらもGitHubリポジトリです。

プロジェクトBは、多くのプロジェクトで再利用するライブラリです。プロジェクトX、Y、Zから直接、プロジェクトBにデータを追加します。

プロジェクトBはシンプルです。これは、C#ファイルと アセンブリ定義 、つまりUnityクラスライブラリのディレクトリです。これは、ミニマリストで自己完結型であるという意味で、Visual StudioのShared Projectに似ています。

私はgitサブモジュールなどの代替手段を模索してきましたが、結局、シンボリックリンクを介してそのライブラリを別のプロジェクトにデプロイすることの容易さと柔軟性に勝るものはありません。

長所:

  • 事前に構築されたライブラリを取得しない(そして明らかに拡張することは不可能)
  • コードは直接変更できます
  • IDEは違いを認識しません。他の場所にある場合でも、これらは単なるファイルです
  • ライブラリのコミットとプロジェクトのコミットを混在させる必要はありません

短所:

  • ライブラリをリポジトリにコミットする必要があります
  • APIを変更すると、一部が壊れる可能性があります

しかし、実際には、これらの短所を見ると、それが長所を上回るとは思いません。別のアプローチを試みたとしても、これらは発生します。

これは私が物事を設定する方法です:

  • devフォルダー
    • 図書館
    • 事業
      • ライブラリのシンボリックリンク

私は Link Shell Extension を使用して、Windowsエクスプローラーでのシンボリックリンクの作成を容易にします。

質問:

プロジェクトに外部コードをインポートしながら、それを変更できるようにするための良いアプローチですか?

それ以外の場合、いくつかの代替案を提案できますか?

2
Aybe

これは通常、.NETで nuget パッケージを使用して行われます。そのエコシステムでの作業は、プロジェクトを直接参照することからの最善のステップです。これを使用する既存のコードを壊すことなくライブラリを更新できるという利点があります。バージョンの固定を介して。

4
jdd