Question: The trusty old preprocessor directive in C# appear to work great when I write:

```
#if DEBUG
...
(Some code)
...
#endif

```

However, attributes enclosed in the conditional block appear to continue to get processed and I get errors indicating such. For instance, surrounding an `[AssemblyVersion(...)]` within the conditional block appears to have no affect.

I can go into the details as to why we want to conditionally ignore the [AssemblyVersion(..)], but it's irrelevant. Any ideas?

Answer: 
I figured it out! There was a key piece of information I neglected to mention: that it was a Workflow project (Guid {14822709-B5A1-4724-98CA-57A101D1B079}). It turns out that there is a bug with the workflow project type, specifically the Workflow.Targets file that is included in the build file.

It appears that the preprocessor acts as though the DEBUG constant is defined. You can repro the issue by creating a workflow project and adding this to the AssemblyInfo file:

```
#if DEBUG
[assembly: AssemblyFileVersion("1.0.0.0")]
#endif

```

Then try a release build.
I filed this with MS: <https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=466440>

Best regards!
-Sean
To follow up @yoyoyoyosef comment answer, you need to check the Properties page of your Project.

You will see in the Build menu, under the General heading, make sure the "Define DEBUG constant" checkbox is not checked.

This value changes based upon the "Configuration" choice (dropdown) at the top of the Build menu.