1

(Visual Source Safe を使用していることはわかっていますが、MSDN サブスクリプション ライセンスが付属していて、会社がサード パーティのソース管理ソリューションを購入したくないため、選択の余地はありません....)

3 つの C# クラス ライブラリ プロジェクト、2 つの ASP.NET Web サイト プロジェクト、および Visual Source Safe データベースに格納された 1 つの ASP.NET Web サービス プロジェクトを含む VS 2005 ソリューションがあります。一部のプロジェクトは、共通タスクを処理する共通ライブラリ DLL を参照します。

新しい人が自分のワークステーションにソリューションをセットアップして初めてビルドするとき、ASP.NET Web サイトと Web サービス プロジェクトの bin フォルダーにある共通ライブラリ DLL をチェックアウトします。現在プロジェクトに取り組んでいる別の開発者がビルドしようとすると、「他のユーザーによってファイルが除外されてチェックアウトされました」というメッセージが表示されます。

VS 2005 では、頭痛の原因となっている DLL の横にチェック マークが表示されません。

これが起こらないようにする方法はありますか?

4

3 に答える 3

2

bin フォルダを SourceSafe にチェックインしているのはなぜですか? 私が取り組んできたプロジェクトでは、サード パーティの dll は、ソリューション ファイルと同じレベルの別のフォルダー (おそらく ExternalLibraries または ThirdParty と呼ばれる) にチェックインされていました。コンパイル プロセスは、dll を bin フォルダーにコピーするように設定されます。これは、.refresh ファイル、またはビルド前またはビルド後のステップで処理できます。このようにすると、VisualStudio/SourceSafe はファイルが更新されたと認識せず、チェックアウトしようとしません。

ファイルが依存関係にあるためにコンパイルが既にファイルを取り込んでいる場合は、VSS から bin フォルダーを削除することをお勧めします。これは、コンパイル時に VS05 からフォルダーを非表示にする「プロジェクトからフォルダーを除外する」とは異なります (また、前述のコンパイル エラーが発生します)。

サード パーティの dll が変更されない場合は、VSS でそれらのファイルを読み取り専用にするという別のオプションがあります。これにより、ユーザーはファイルをチェックアウトできなくなります。(ファイルを読み取り専用にするには、VSS 管理ツールからアクセス許可を変更する必要があります。開発者のツールにはその機能がありません。)

なぜそれが起こるのかについては、VSS がバイナリ バージョン番号をチェックしているとは思えません。新しい開発者がすべてのコードを引き出すと、すべてのファイル (バイナリを含む) の現在の日付が変更日になります。これにより、不要なチェックアウトが発生している可能性があります。

後のコメントについて-VS05がファイルをソース管理下にあると見なさない理由がわかりませんが、VSS UIはそうです。そのフォルダーにある .vss ファイル (および同様のファイル) に関係していると思われます。この場合、VS05 は正しくありません。

于 2008-11-19T19:03:23.257 に答える
1

これが問題なのか最善の修正なのかはわかりませんが、すべての開発者のマシンを更新して、共通DLLの同じ最新バージョンがインストールされている場合、これは継続しないはずです。プロジェクトファイルによって参照されるバージョンが開発者のマシンにインストールされているバージョンと一致しない場合、VSSは\binフォルダー内のDLLをチェックアウトすると思います。

于 2008-11-19T17:42:26.090 に答える
0

@ペドロ:

VS 2005 IDEインターフェースでは、\binフォルダーがVSSにあることを示していません。VSS UIでプロジェクトを見ると、ワークステーションで最新のビルドを行ったユーザーにチェックアウトされていることがわかります。

「プロジェクトからフォルダを除外する」オプションを使用すると、コンパイラが「参照が見つかりません」というエラーをスローします。

私のソリューション構造では、クラスライブラリプロジェクトは、[参照の追加]コマンドを使用してサードパーティのDLLへの参照を作成します。次に、ASP、NET WebサイトおよびWebサービスプロジェクト(Webサイトプロジェクトテンプレートを使用)のクラスライブラリへのプロジェクト参照を設定します。クラスライブラリはサードパーティのDLLに依存しているため、それらは\binフォルダーにコピーされます。

VSS UIを使用してファイルを読み取り専用に設定するにはどうすればよいですか?

于 2008-11-20T00:24:14.203 に答える