Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为整个项目全局声明预处理器符号(如调试)_C#_.net_Visual Studio_Nunit_C Preprocessor - Fatal编程技术网

C# 为整个项目全局声明预处理器符号(如调试)

C# 为整个项目全局声明预处理器符号(如调试),c#,.net,visual-studio,nunit,c-preprocessor,C#,.net,Visual Studio,Nunit,C Preprocessor,我想在NUnit和VS测试之间切换如下: #if !NUNIT using Microsoft.VisualStudio.TestTools.UnitTesting; #else using NUnit.Framework; using TestClass = NUnit.Framework.TestFixtureAttribute; using TestMethod = NUnit.Framework.TestAttribute; using TestInitialize =

我想在NUnit和VS测试之间切换如下:

#if !NUNIT
using Microsoft.VisualStudio.TestTools.UnitTesting;
#else
  using NUnit.Framework;
  using TestClass = NUnit.Framework.TestFixtureAttribute;
  using TestMethod = NUnit.Framework.TestAttribute;
  using TestInitialize = NUnit.Framework.SetUpAttribute;
  using TestCleanup = NUnit.Framework.TearDownAttribute;
  using TestContext = System.String;
  using DeploymentItem = NUnit.Framework.DescriptionAttribute;
#endif

我的问题是,我如何在一个地方声明NUNIT预处理程序符号(App.config或其他,最好是这样),以便在NUNIT和VSTests之间轻松切换?因为当我使用
#define NUNIT
时,它只适用于写入文件的文件。

使用项目属性对话框。您可以在此处定义全局符号:

右键单击项目->属性->构建选项卡->条件编译符号


每个项目执行此操作的唯一方法是通过项目/构建本身(项目属性->构建->条件编译符号)。您可以为一个项目定义多个“配置”(定义了不同的符号),并使用所需的配置

要添加新配置,请使用configuration manager(位于“调试/发布”下拉列表的底部)并基于现有配置(调试/发布/etc)创建一个新配置。现在,在项目属性中,您可以选择此选项为该配置设置不同的符号