我的项目使用.Net 4.0客户端。
以下代码段
#if DEBUG
string key = "pldi6z3n3vfz23czhano";
#else
string key = "bh7aaqmlmd0bhd48g3ye";
#endif
using (new Analytics(key, userInfo))...
在Debug和Release配置中编译并运行良好。但是,如果调试配置在Visual Studio中处于活动状态,则Resharper会强调我传递给Analytics构造函数的参数,并显示“Arguments Mismatch”。它没有提供解决问题的选项,因为它认为这是一个错误,而不是警告,它不提供抑制它。如果我添加第三个参数,为true,那么它就完全开心了。构造函数的第三个参数的默认值为true,因此不必显式传递它。当然,这对我来说没有问题,但我对Resharper的行为感到困惑。
如果重要,则Analytics类来自John Hatton创建的DesktopAnalytics版本1.0.1(使用NuGet下载)。
Resharper版本是7.1.3完整版。
答案 0 :(得分:0)
这对我使用Resharper 8.0是正常的 - 我确实记得R#没有在早期版本中很好地处理预处理器指令 - 因此它很可能已经修复了。可以通过将key
声明移出预处理器指令(这是一个疯狂的猜测)来修复您的版本
答案 1 :(得分:0)
有同样的问题。我尝试从UI清除缓存并删除文件夹。重新启动的重新加载解决方案(很多次)其他类似项目都很好。
我没有术语,但有两个属性设置区域。一个显示为一个大对话框。使用应用程序,构建,构建事件,调试等选项卡。当我在解决方案资源管理器中左键单击项目文件时,另一个显示出来。它有6个Name-Value选项。第一个是" C#语言水平"它以某种方式设置为C#3.0(不支持可选参数)。将其设置为C#4.0修复了所有问题。注意我正在为.Net Framework 4.0构建x86。我正在运行匹配的NUnit。
无论如何,这一变化为我解决了问题。我不知道这是怎么发生的。