【问题标题】:Conditional compilation symbols not being defined for non asp.net project未为非 asp.net 项目定义条件编译符号
【发布时间】:2015-07-08 14:32:52
【问题描述】:

我有一个 C# 库项目。我已经定义了一个条件编译符号:SHOULDWORK

但问题是这个符号没有被定义。我不知道为什么。

这不是一个 asp.net 项目。我正在使用 VS 2013。我在 C++ 中广泛使用了预处理器定义,所以这对我来说并不新鲜。但我就是想不通是什么问题。

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

求助!!!

正如旁注一样,DEBUG 符号按预期工作。它是为 Debug 版本定义的,而不是为 Release 版本定义的。

** 编辑

符号已正确存储在 *.csproj 文件中:

** 已解决

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

【问题讨论】:

  • 非常感谢您发布解决方案。我遇到了类似的问题,这为我节省了很多时间!
  • 对我来说完全相同的问题!有使用不同常量的 x86 和 x64 配置,将它们设置为相同,它就可以工作。
  • VTC '因为它没有提供重现问题的方法,并且显示的代码很好 - 所以无法回答。
  • 您应该将您的解决方案发布为您自己问题的可接受答案。

标签: c# visual-studio-2013


【解决方案1】:

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

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

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

 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

在组内你会发现标签&lt;DefineConstants&gt;

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

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 2010-10-03
    • 2019-03-24
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 2015-05-23
    • 2016-11-18
    相关资源
    最近更新 更多