7

質問は終わりである - 私は、コンテキストを装っことから始めてみましょう:ソース管理にWindows SDKを保存していますか?

のVisual Studioを使用しているとき、私たちが仕事で直面している問題の一つは、チームの全員が同じバージョンを使用していることを確認することですのSDKの。

典型的な問題は、別のAPIを使用するために別のコード/コードを使用するか、より新しいプラットフォーム/ Windows SDKにアップグレードする別のコードを使用することです。コードが以前のバージョンを使用している場合、他のプログラマーのマシンでコードが失敗します。

私たちが他のミドルウェアの問題を解決するために使用した方法は、ソース管理システムにライブラリ、インクルードファイル、ツールチェーンなどのすべてのセットを置くことでした。何かをインストールする必要があります。 Direct X SDKの以前のバージョンでもそれを行うことができましたが、SDKとツールチェーンの密接な関係のため、Windows/Platform SDKに関する問題が常に発生しました。

私たちは今、VS2010とVS2012の両方をサポートする必要があり、Windows 8のターゲットへのWindows XPからサポートする必要があるので、我々はV100V110v110_xpツールセットをサポートする必要があります。

これは、開発者用マシンとビルドシステムの両方で、関連するすべてのコンパイラと対応するSDKが必要であることを意味します。これは、無作法なWindowsアップデートと.netフレームワークのリリースが日常的に壊れやすいmsbuild。

は、そこで質問です:

  • それは非インストールツールセットおよびSDKを使用するためのVisual Studioを持っていることは可能ですし、代わりにそれは設置場所VSノーマルのうち、いくつかのフォルダに利用可能であるものを使用ましたか?

  • ボーナスに関する質問:実行可能であれば、マシン上にローカルにインストールされている設定ファイルを変更することなく、実行することができますか?ソリューション/プロジェクトまたはプロパティシートのすべてを変更してくださいソース管理システム上の構造は、すべての単一のマシンを更新する必要はありませんか?与えられた

おかげで:)

+2

私はVM(ビルドサーバー)の方法で保証します。あるいは、ゴーストインストールイメージ。 (あなたが説明しているのは、ある意味では、UNIXの世界です。悲しいことに、マイクロソフトはその絵にあまり適していません) – sehe

+0

両方の質問にはいりますが、簡単な操作よりもハックです。これは、ビルドマシンでセットアップできるものです。いずれにしても、これを分岐してdevブランチにロールアウトして、使用準備が整ったらそれを実行する必要があります。 – KMoraz

+0

標準的なVMを構築し、開発者に同じ環境を使用させてください。誰かがビルドを壊して他の誰かを傷つけない限り、これは厳しいプロセスです。新しいSDKを使用する必要がある場合は、新しいVMイメージを作成して、独立したブランチにチェックインするよう依頼してください。時間が間に合うと、誰もが新しいVMイメージにアップグレードする必要があります。適切な管理を行う場合は、SDKをソース管理にチェックインする必要はありません。ソリューションではないからです。 –

答えて

0

これはあまりにも複雑に聞こえる、どのように複雑なこれらのツールのインストールの一部です。私はこの問題を、インストールされているツールとツールのパスを調べ、インストールを「警戒する」PowerShellスクリプトに投資することで解決します。パッチやアップデートなど、すべてのインストールされているバージョンを確認するのは比較的簡単です。それらを夜間に、またはビルドの一部として実行することができます。また、開発者用ボックスにインストールされているツールのバージョンなど、さまざまなインストールの側面をビルドサーバーと比較できます。

これは、痛みの10%の値の90%を与えます。

0

あなたが記述した問題は、あなたのアプローチでは解決されません。あなたが実際に必要とするのは、ビルドサーバーとビルドサーバーでビルドされたバイナリの使用を含む定義です。また、ビルド定義の一部としてテストスイートが必要であり、使用されるビルド環境に関連する不変条件がいくつかあります。