2009-03-29 22 views
33

ユーザーコントロールまたはプロジェクト参照をVS 2008 C#プロジェクトに追加するときに、アセンブリの構成を1つだけ追加できます。コンテナプロジェクトの設定に応じて、別々の設定を追加することは可能ですか?C#/ VS2008:プロジェクトに別のデバッグ/リリース参照を追加する

など。私はユーザーコントロールを開発しており、サンプルアプリケーションを開発中です。サンプルのデバッグビルドでユーザーコントロールのデバッグビルドを使用し、サンプルのリリースビルドをユーザーコントロールのリリースビルドで使用するように、ユーザーコントロールを追加します。

提案がありますか?

答えて

25

これは、csprojファイルを編集することで実行できます。参照に「Condition」属性を追加します。

<Reference Include="Foo" Condition="'$(Configuration)'=='Debug'"/> 
<Reference Include="Bar" Condition="'$(Configuration)'=='Release'"/> 

しかし、私はユニットテストのためにこれが何を意味するかについて懸念しています。

+0

質問は、使用しようとしています同じ 'UserControl'をこのようにして2回の参照を追加することはできません。また、Visual Studioでは@Salvatore Previtiがそれを許可しません – CallMeLaNN

5

@Marc Gravellの提案はうまくいくが、両方のプロジェクトを同じソリューションにしたくないという理由があるのだろうか?それらが同じソリューションにある場合は、User Controlプロジェクトをサンプルアプリケーションのプロジェクトに参照するときに、Project Referenceを追加できます。プロジェクトリファレンスを使用すると、Visual StudioはDebugビルド用のDebugバージョンとReleaseビルド用のReleaseバージョンを自動的に追加します。

+1

参照されているプロジェクトが個別にソース管理下にある場合(多分汎用ライブラリプロジェクト) –

31
<Reference Include="MyLibrary"> 
    <HintPath>..\$(Configuration)\MyLibrary.dll</HintPath> 
</Reference> 

このリリースモードでコンパイルした場合、デバッグモードまたは.. \リリース\ MyLibrary.dll」でコンパイルされた場合、「.. \デバッグ\ MyLibrary.dll」の参照を追加します。

+0

偉大な答え+は、DLLがソリューション外のフォルダにある可能性があるため、相対パスを使用します。 – CallMeLaNN

+0

Visual S tudio(私の場合はVS2010)は礼儀正しいと思われ、後でIDEからプロジェクトファイルを変更するときにそのような手編集を妨げることはありません。私が新しいクラスを追加したテストでは、すべてうまくいきました。 –

関連する問題