As mentioned by Nicole, this occurs because Code Analysis/FxCop is enforcing that strong names including versions match exactly. This behavior makes sense for .NET Framework, until you start to factor in binding redirects (or other platforms such as Store, Phone & Silverlight which always allow later versions of an assembly to match an earlier version), which FxCop does not respect.
I wrote this original behavior in FxCop, and it was over optimizing for correctness vs real world. At the time, we didn't have an opt out other than via the App.Config. However, luckily after I left the team, some smart person on the team added one both via the command-line and within Visual Studio.
Via the command-line:
FxCopCmd.exe /assemblycomparemode:StrongNameIgnoringVersion ...
Via Visual Studio:
- Right-click on the project in Solution Explorer and choose Unload
- Right-click on the project in Solution Explorer and choose Edit
- Within the first
<PropertyGroup>
element, add the following:<CodeAnalysisAdditionalOptions> /assemblycomparemode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
- Right-click on the project in Solution Explorer, choose Reload saving the changes when prompted.
This will only work in Visual Studio 2012 and higher.