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
Are you sure you're not building in release mode?