0

MS VS2012 の add as link 機能を使用したいと思います。これは、ファイル用ではなく、特定のコード ブロック用です。

私は多くのプロジェクトで解決策を持っています。ソリューション内の他のプロジェクトに存在するすべてのアルゴリズムを収容する単体テスト プロジェクトを作成しています。テストするすべてのアルゴリズムを新しい単体テスト プロジェクトのファイルにコピーできますが、他のプロジェクトのコードが更新された場合に、テスト ファイルのコードを自動的に更新する方法も探しています。VS でコード チャンクへの参照を作成したいようなものです。

そのような機能が存在しない場合、ビルドするたびにテスト プロジェクトのコードを更新するスクリプトを作成できますか?

編集:プロジェクト自体にテスト コードを含めることができない理由は、ソリューション内の他のプロジェクトが .NET Microframework プロジェクトであり、.NET Microframework が NUnit テスト フレームワークで使用されている c# 属性の使用をサポートしていないためです。したがって、これらのプロジェクト内にテスト コードを含めることができない理由です。ただし、テストしたい .Net MF プロジェクトのドライバー ファイルにいくつかのアルゴリズムがあり、これらのアルゴリズムはプロジェクトの種類に依存しないため、このコードの同期を維持する方法を探しています。 .Net MF プロジェクト内のアルゴリズムに何らかの変更が加えられた場合、手動でコピーする必要なく、単体テスト プロジェクト内で同じそれぞれの変更が行われます。

EDIT:最も簡単な用語では、私が探しているのは、あるプロジェクトファイルから別のプロジェクトファイルに特定のコードブロックをコピーするために実行できるある種のスクリプトです。

4

1 に答える 1

-1

同じソース コード ファイルのさまざまな部分がさまざまなプロジェクト間で共有されているという、非常によく似た問題がありました。ここに私のために働いた修正があります。

ソース ファイル File1.cs に 4 つのメソッドが含まれているとします。そのうち 2 つが ProjA で使用され、2 つが ProjB で使用されます。ここで、ProjA と ProjB は Visual Studio ソリューション内の異なるプロジェクトです。

File1.cs のコピーを 1 つだけ保持するには、2 つのプロジェクトに PROJ_A と PROJ_B などの条件付きコンパイル シンボルを使用します。ProjA で使用されるメソッドを条件付きコンパイル シンボルの下#if PROJ_Aに配置し、ProjB で使用されるメソッドを条件付きコンパイル シンボルの下に配置します#if PROJ_B。次に、File1.cs をリンク ファイルとして両方のプロジェクトに追加し、対応する条件付きコンパイル シンボルがそれらのプロジェクトに設定されていることを確認します。

これがあなたが探していたものである場合、実装に問題がある場合はお知らせください。

于 2013-11-06T20:01:27.807 に答える