Solution configs/platforms

Mar 30, 2011 at 8:26 PM

First, I take it the added ReSharper project is an attempt to merge stylecopforresharper into StyleCop in a way that doesn't force StyleCop developers to also have ReSharper installed?  I haven't actually used ReSharper at all, and I'm happy that it looks like we're trying to avoid it being a required dependency.


Looking at the latest set of solution configs, I am confused.  I don't compile fully, as I can't build the Resharper project.  I think the intent is to have the "Debug" and "Release" configs avoid building that project, but it's selected for building in both.  Also, the "CodeAnalysis" part of some configs is outright confusing since that's the old name for StyleCop.  We probably want to reorganize solution configs to something like:

* Debug (excludes ReSharper project; builds successfully without ReSharper installed)

* Release (excludes ReSharper project; builds successfully without ReSharper installed)

* ReSharper.Debug (all projects, including ReSharper)

* ReSharper.Release (all projects, including ReSharper)


For solution platforms, I have a bit of concern too.  Targeting AnyCPU is great if we can pull it off.  Can we?  This pretty much requires that we have no direct dependencies on any DLL which is split by the creators into x86 and x64.  Otherwise, things will seem to work on some machines but the modules won't load correctly on others (since our references would be x86 or x64 instead of AnyCPU).  Hopefully, at least, all the jetbrains references by the resharper project are all built as AnyCPU?

So basically our platforms list should either only contain AnyCPU (if we can), or should only contain x86 and x64.  Or only contain x86 if we don't want to commit to thorough testing on a wide array of platforms, as that's the most compatible.  Containing x86 and AnyCPU (as it does now) is just a confusing combination, and seems to be inviting people to build a version that shoots themselves in the foot later.  I know VS fights a "correct" selection of configs and platforms every time you add another project to the solution, but it's very helpful if we try to keep just the minimum set of correct configurations available.

Mar 30, 2011 at 8:50 PM
Edited Mar 31, 2011 at 9:54 AM
I'll review tomorrow. Also note stylecop was called SourceAnalysis not CodeAnalysis. I'll also remove the x86 that sneaked in.

Mar 31, 2011 at 7:09 AM
andyr wrote:
Also note stylecop was called SourceAnalysis not codeanalysis.

Oops, yes, my mistake.  The "codeanalysis" and "codeanalysisresharper" solution config names remain puzzling.  Based on their presence, one must wonder if the "debug" and "release" flavors do not perform any code analysis.

As an aside, I wish the VS team would at least add a confirmation dialog like "creating solution platform 'x86' [accept] [cancel]" when trying to do so automatically as this is always worthy of user attention (and in practice rarely seems to be the right thing to do automatically anyway).

Mar 31, 2011 at 9:55 AM

Fixed in