ユーザー認証については、ユーザーごとに特定のモジュールのみを含めたいと考えています。だから私はこのように条件付きコンパイルを設定しました
<DefineConstants>TRACE;DEBUG;SAMPLECONSTANT1</DefineConstants>
プロジェクトファイルを次のように編集しました。
<ProjectReference Include="..\Solution1.Modules.Module1\Solution1.Modules.Module1.csproj" Condition="$(DefineConstants.Contains('SAMPLECONSTANT1'))">
<Project>{4E378BD0-4FF8-4160-9331-1ECBFD2B6F30}</Project>
<Name>Solution1.Modules.Module1</Name>
</ProjectReference>
この場合、含まれているModule1
場合はプロジェクトへの参照を追加したい; しかし、何を入れても、ソリューションは常にプロジェクトをロードします。ここで何が間違っていましたか? DefineConstants
SAMPLECONSTANT1
DefineConstants
Module1
更新:実際、私のコードは正しいです。J0e3gan の回答をご覧ください。References
Visual Studio UI は、プロジェクトのフォルダー内の条件付き参照を反映しません。したがって、すべての参照は、任意の構成またはプラットフォームの選択で表示されます。一方、コンパイラと IntelliSense は条件付き参照を認識しており、ビルド中の視覚的なフィードバックとエラー通知の両方で正しい設定を尊重します。