2011-06-27 7 views
3

サードパーティライブラリを使用してコンピュータゲームにC++拡張機能を書き込む途中です。このシステムに対して開発する各ユーザーは、異なるディレクトリにヘッダーファイルを持つ可能性があるため、プロジェクトファイル内の環境変数を使用して、これらのヘッダーファイルの場所を指定します。VS2K10のキャッシング環境変数を無効にするには

新しいバージョンのライブラリがリリースされることがあります。旧バージョンとのコンパイルが必要な場合に備えて、新しいバージョンと古いバージョンを保存する傾向があります。新しいバージョンの場所を指すように環境変数を変更

のVisual Studioで新しいバージョンの場所を指すように大規模な障害が発生し、環境変数をされた変更のVisual Studio 2008

に完璧に働いていた2010年

私は次のすべてを試しました:

  1. setxを使用して、cmdシェルで環境変数を変更します。
  2. アンロードをソリューションを再スキャンして、プロジェクトを再ロードするコンピュータ
  3. を再起動
  4. プロジェクトファイルとソリューションファイルを再作成する。

いずれも機能していません。

VS2K10が環境変数をキャッシュしないようにする方法はありますか?

+0

どのように環境変数を設定しますか?サポートされている方法は、 'sysdm.cpl'を通して手作業で行います。現在のユーザーまたはシステム全体のいずれかに設定できます。前者は後者を上書きします。 –

答えて

0

これは、Visual StudioまたはWindowsがそのコンピュータに設定されている方法で発生している可能性があります。私のラップトップのVisual Studio 2010のインストールでは、この同じ問題は発生しません。

このマシンは先週末に重大な障害が発生していましたが、VS2010をインストールした後もそのマシンに同じ問題があるかどうか確認します。

1

Visual Studioは起動時に環境変数を読み込みますが、VS2003以降は環境変数を使用していません。通常、ビジュアルスタジオを再起動するだけで、新しい環境変数を取得できます。そうでない場合は、プロジェクト構成に環境変数を使用しないことはもう一つの議論です。

代替#1:使用プロパティ・シート

は、Visual Studioの土地にいるので、あなたは、各開発者に配布することができ、プロジェクトの設定を継承するプロパティシートまたはプロパティ・シートのシリーズを使用することができたことができますさまざまなビルド、アーキテクチャ、共通インクルードパスなどの設定を定義するために使用できます。これは、通常、ソース管理ツリーに基づいて開発環境を標準化することを意味します。ソースとライブラリを異なる場所に更新またはプルダウンすることができますが、相対パスは通常はソース管理に基づいているプロパティシートと同じにする必要があります。

代替#2:専用のビルドマシンを使用します。

さまざまなビルドを実行し、場合によってはスモークテストやその他の自動ユニットテストを実行するためのマシンが1台セットアップされています。これにより、開発者は環境、ソリューション、プロジェクトを指定することができますが、ソースファイルのみをチェックインするようにしてください。彼らがチェックインしたソースがビルドマシン環境と互換性がない場合は、出力を添付した電子メールを送ることができなければなりません。依存関係を間違って追加した人や、場合があります。この種の環境で夜間のビルドをスケジュール設定して、新たに導入された間違いを捕まえて、それがさらなる変更に埋もれてしまうのは一般的です。

これまで、特定のバージョンのブーストやその他のライブラリを過去に含めて環境変数を使用していたと言われましたが、そのオフィスではC++を使用している唯一の開発者であり、環境を必要とする開発マシンは1つしかなかった。複数の人が複数のものを変更しているときには、ソース、ライブラリ、出力をレイアウトするための一種の統一的な方法が必要です。

+0

私はこの拡張で作業している唯一の人ですが、プロジェクトファイルなどは第三者のライブラリによって最初に提供されました。もし誰かが気にしていれば、ゲームはソースエンジンゲームであり、サードパーティライブラリはMetaMod:SourceとSourceMod ...ですので、HL2SDK、MM:Source、およびSourceModにリンクします。 – Powerlord

+0

ああ、その場合、単にVCVARS32.batを実行してみましたか?技術的には、コマンドラインビルド用の環境を設定するためですが、devenv.exeを開いている環境をリフレッシュするかもしれませんが、わかりません。 – AJG85

0

これを防ぐ方法はわかりませんが、キャッシュはソリューションの.suoファイルに保存されているようです。このファイルを削除すると、同じ問題が発生したときにキャッシュされた環境値が削除されました。 .suoファイルは、プロジェクトを再オープンしたときに再作成されたようです。

私はvcproj.userファイルを削除しました。両方の核がより確実になるようにする。 :)

これが役に立ちます。

関連する問題