2011-11-13 10 views
11

私は、条件付きコンテンツの「条件付き参照」と同様の手法を使用するのに数回試しました。構成に基づく条件付きコンテンツ

「web.config」などのVisual Studioプロジェクトファイルのコンテンツエントリではなく、が公開されます。私のようないくつかのことを試してみた

...

<Choose> 

    <When Condition="$(Configuration) != 'Release'"> 
     <ItemGroup> 
      <Content Include="web.config"> 
       <SubType>Designer</SubType> 
       <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
       </Content> 
     </ItemGroup> 
    </When> 
    <Otherwise> 
     <ItemGroup> 
     </ItemGroup> 
    </Otherwise> 

</Choose> 

しかし、これは動作しません。何か案は?それともこれまでに遭遇し解決しましたか?

答えて

19

私はあなただけItemGroup ...例に条件を追加することができると信じて:

<ItemGroup Condition="'$(Configuration)' != 'Release'"> 
     <Content Include="web.config"> 
      <SubType>Designer</SubType> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
      </Content> 
    </ItemGroup> 

注状態で約ティック「$(コンフィギュレーション)」。それらは非常に必要です。

+0

私はこれを試しましたが、動作させることができません。私もCondition = "'(Configuration)' == 'Debug'"を試みましたが、それでも喜びはありません。設定を切り替えると、ファイルは単にプロジェクトに入れられたままです。私はまた、設定を切り替えてアンロードし、プロジェクトを再読み込みしようとしましたが、それらのファイルはどの設定にもかかわらず含まれています。 – tentux

+0

また、新しいコンソールアプリケーションの作成を試みたので、より複雑なソリューションがスパナを投げていないことを確認してください。しかし、それでも動作しません: どのような設定を選択しても、これらのファイルはプロジェクトに存在します。 – tentux

+0

私はちょうどリリースしましたが、ビルド時には、静的メインが存在しないため、コンパイルエラーが発生します。私の疑惑は、ソリューション・エクスプローラが、組み込み/構築するものを反映することを期待していることです。これらのファイルはプロジェクトで表示されますが、ビルドがそのファイルにジャンプしたように見えます。私は後で自分の理論を試し、別の投稿で確認します。 – tentux

2

Nick Nieslanikから提供された回答をいくつかの詳細で拡張したいのと同じように、他の人が私と同じように困惑しないようにしたいと思います。

解決策は、ビルド/パブリッシュ中に機能しますが、Visual Studio 2010のインターフェイスに変更が反映されないことがあります。これが欠陥であるかどうかはわかりませんが、それは私を混乱させ、他人を混乱させるかもしれません。

+0

これをコメントとして記述すると、回答より効果的です。 – jpierson

+0

私は同じ現象を見ました。 VS2010は実際に行われたことを反映していません。 –

関連する問題