Visual Studio项目:如何仅为一个配置包含引用?

Ser*_*ier 21 c# msbuild configuration reference visual-studio

环境:VS2008 C#项目

我需要构建我的应用程序以在2个不同的环境中使用.在其中一个环境中,我需要使用第三方DLL程序集.

我可以使用#if块来隔离使用此DLL的代码.但是,如何有条件地在CS项目文件中包含对DLL的引用?

编辑:womp在评论中有一个很好的观点.我变成了一个单独的问题:如果从未调用引用的DLL,它是否会被加载?TIA,

Coi*_*oin 24

卸载项目并将其打开为.XML

找到引用项标记并添加Condition属性.

例如:

<ItemGroup>
  <Reference Include="System.Core">
    <RequiredTargetFramework>3.5</RequiredTargetFramework>
  </Reference>
  <Reference Include="System.Data" />
  <Reference Include="System.Drawing" />
  <Reference Include="System.Xml" />

  <Reference Include="MyUtilities.Debug"
    Condition="'$(Configuration)'=='Debug'"/>

</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

请注意,最后一个引用现在有一个条件.

  • 这也是我的想法,所以我尝试了.在我的情况下,导致所有配置中的引用都失败(系统的行为就像它找不到程序集一样). (2认同)
  • 是的问题是,IDE忽略条件的东西,在这种情况下,它需要它出于各种原因(intellisense,对象浏览器...)所以它会抱怨.此外,您必须对该程序集进行条件调用,否则编译器将无法找到代码所引用的程序集. (2认同)