Visual Studio ソリューションの構築に最適なアプローチ方法について、人々からフィードバックを得ることができるかどうか疑問に思っています。
私の主な要件は、コード/テストが正しいリソース、特にデータベース スキーマとサンプル データに対して実行されるようにすることです。
私はこれを行うためにさまざまな方法を試しましたが、成功の程度はさまざまです。現在、私は…</p>
- データベースなどを作成、構成、設定するクラス ライブラリ *.Installation.dll を作成します。
- csproj ファイルからパラメーターを取得して Installation.dll に渡す MSBuild タスクを含むクラス ライブラリ *.Build.dll を用意します。
これらは独自のソリューション内にあります。MyApp.Build.sln と言います。ファイルのロックの問題を防ぐために、これをメインのソリューションとは別に維持しています。
私の主なソリューションでは、たとえば MyApp.sln …</p>
次に、テスト プロジェクトは MSBuild タスクを呼び出して、データベースとサンプル テスト データを含む統合テスト用のテスト環境を作成します。そして、私の Web/Windows フロント エンド プロジェクトは MSBuild を呼び出して、テスト ユーザー/手動テスト用の実行可能な環境を作成します
そのため、MSBuild を使用して、テスト/実行用のカスタマイズ可能なビルド/環境を作成しています。さらに、Installation.dll を構成/セットアップ ツールにラップして、ユーザーがインストールするときにインストールを自動化することもできます。
これはあまりにも複雑なシナリオですか? 私はこれを過度に設計し、何かを見落としているのではないかと心配しています。これはうまく機能しますが、有形の課金対象の作業に直接関与しない多くのメタ プログラミング (データベース ビルド コード、構成、ビルド タスクなど) に拘束されます。
SubVersion と TeamCity があります。最終的に、デイリー/コミット ビルド トリガーで呼び出される CI ビルドを有効にしたいと考えています。または、データベースなどの再構築を避けるために TeamCity を使用できますか。すべてのビルド?
洞察をありがとう。