展開/リリースシナリオでGACUtil を使用しないことに関する情報/ブログ/msdn 記事がたくさんあり、MSI または別の Windows インストーラー テクノロジがはるかに優れたオプションです。
ただし、開発ワークフローで GACUtil を使用することは依然として適切ですか。
強力な名前が付けられ、GAC から参照される DLL が多数あります。開発チームの同期を維持するために、GAC 対応 DLL の新しいバージョンが生成されると、毎日のトランク チェックアウトの一部として、他のすべての開発者 GAC に自動的に追加されます。ワークフローは次のようになります。
- 開発者は、GAC 対応アセンブリの 1 つに変更を加え、ローカルでテストし、サインオフしたら、DLL のリリース バージョンをコンパイルします。
- リリース バージョンは、\Project_DIR\bin\Release*.dll -> \COMPANY_GAC\Current*.dll からコピーされます。
- 他の開発者は、ソース管理チェックアウト バッチ スクリプトを実行します。
- COMPANY_GAC\Current*.dll の最新バージョンを確認してください
- 各 DLL で GacUtil.exe を実行します。
これまではこれでうまくいきましたが、以下の点で少し複雑になってきています: - より大きなチーム、より厳格な GAC 変更の管理。- CLR2.0 および CLR4.0 でコンパイルされた Company_Gac アセンブリには、異なるバージョンの GACUtil.exe が必要です - 複数の機能ブランチを持つビルド/統合サーバーでアセンブリを管理する (したがって、異なる GAC DLL をホットスワップする必要があります)
これを管理するために、GACUtil & Scripts よりも堅牢なものを検討する必要がありますか?
考慮事項の 1 つは、powershell で何かを自分でロールして、アセンブリの種類を確認し、アセンブリを正しい GAC に追加することでした。誰かがこれをしましたか?
開発者が GAC ワークフローを管理する方法に関するその他の提案は大歓迎です。