没有为非asp.net项目定义条件编译符号

san*_*oIT 10 c# visual-studio-2013

我有一个C#Library Project.我已经定义了一个条件编译符号:SHOULDWORK

在此输入图像描述

但问题是这个符号没有被定义.我不知道为什么. 在此输入图像描述

这不是一个asp.net项目.我正在使用VS 2013.我在c ++中广泛使用了预处理器定义,所以这对我来说并不是什么新鲜事.但我无法弄清问题是什么.

我尝试重建,重启VS但无济于事.我尝试在同一项目中的不同源文件上使用SHOULDWORK符号,但未定义符号.

救命!!!

正如旁注,DEBUG符号按预期工作.它是为Debug构建定义的,而不是为Release构建定义的.

**编辑

符号正确存储在*.csproj文件中: 在此输入图像描述

**已解决

csproj有几个PropertyGroup条目,其中定义了DefineConstants.我手动将我需要定义的符号添加到那些PropertyGroups然后它工作.似乎项目文件过去是手动编辑的,这可能导致了这一点.它需要清理,但至少现在我可以继续前进.

kia*_*ore 1

如果使用属性面板不起作用,您可以手动修改项目文件。

  1. 右键单击 vs 中的文件项目
  2. 卸载项目
  3. 再次右键单击
  4. 编辑项目文件

现在您可以修改项目了。找到您感兴趣的所有属性组:如果您想为所有编译类型添加条件编译符号,您应该在每个与编译相关的属性组中添加该符号。这是用于编译的属性组的示例:

 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Run Code Online (Sandbox Code Playgroud)

在组内,您将找到标签<DefineConstants>

地产集团项目

在此处添加您的常量并重新加载项目。当然,您可以简单地将 vs 之外的 le prj 修改为简单的文本文件。

  • 对我来说,定义常量或符号已经在项目文件中,但它仍然不起作用! (2认同)