C# ReSharper:在特定属性的所有目标上抑制特定警告
示例: private string foo; 这正确发出了警告CS0649: Field 'foo' is never assigned.但是,如果添加我的自定义属性,我希望抑制警告: [Localize("foo")] private string foo; 我知道这是可以使用 resharper .我正在使用的库,[JsonProperty("foo")] private string foo; 我尝试在属性类上使用#pragma指令,并与 编辑:在未分配的字段上使用newtonsoft.json.jsonproperty时,添加了一个动画来显示所需的行为. 编辑:添加澄清,因为该功能似乎是特定于特定的 解决方案 添加[MeansImplicitUse]属性,来自其他解决方案 [UsedImplicitly]属性来自在这里/p>
12 2024-04-26
编程技术问答社区
警告C4799:函数没有EMMS指令
我正在尝试创建使用包含C ++代码和Inline Assembly的DLL库的C#应用​​程序.在函数test_mmx中,我想添加两个特定长度的阵列. extern "C" __declspec(dllexport) void __stdcall test_MMX(int *first_array,int *second_array,int length) { __asm { mov ecx,length; mov esi,first_array; shr ecx,1; mov edi,second_array; label: movq mm0,QWORD PTR[esi]; paddd mm0,QWORD PTR[edi]; add edi,8; movq QWORD PTR[esi],mm0;
12 2024-04-25
编程技术问答社区
警告:无法找到引用的组件'NuGet.Core'。
我正在研究Visual Studio 2010的开发桌面应用程序.直到昨天一切都很好,但是从今天开始,一旦我在Visual Studio打开该项目时,它就会给我警告,"引用的组件'Nuget.core.core'可以找不到".我在解决方案资源管理器中搜索,发现在项目 - >参考中,nuget.core带有感叹号.我不知道的东西是被删除或损坏的吗?请帮忙!!我找不到背后的原因.搜索了解决方案,但没有成功.一个> 解决方案 感叹号意味着该项目已经失去了参考的位置,但它知道应该在那里.如果您手动删除引用(右键单击组件,然后选择"删除"),然后再添加它(project->添加参考 - >然后找到文件位置[您不需要使用Nuget使用Nuget Re添加它])项目应该使您的项目再次工作. 关于为什么会发生这种情况,可能会改变某些地方导致VS失去参考的地方.这可能是参考,源控制或其他内容的位置.通常我找不到这样做的原因.
8 2024-04-25
编程技术问答社区
在迭代器中访问C#基类会导致ReSharper警告
我有两个类,GenericList和SpecificList,其中SpecificList从GenericList继承. GenericList实现IEnumerable和SpecificList实现IEnumerable. SpecificItem从GenericItem继承.由于它们实现IEnumerable,因此我必须在GenericList和SpecificList中实现GetEnumerator.在GenericList中,这很容易,我只是退还了基础List的枚举者: public IEnumerator GetEnumerator() { return genericItemsList.GetEnumerator(); } 但是,在SpecificList中,这似乎更棘手.将IEnumerator施放到IEnumerator
10 2024-04-23
编程技术问答社区
内部通用类型与外部编译器警告相同
所以我有一个树类: public class Tree : IEnumerable where T : IComparable { private Node root = null; ... private class Node : IEnumerable where T : IComparable { private Node left, right; ... } } 它可以正常工作,但是我得到编译器警告:Type parameter 'T' has the same name as the type parameter from outer type 'Tree'好吧,当然是同一名称,它们应该是相同的类型. (实际上,由于Node类是私人的,因此永远无法在Tree类之外访问,因此它们是相同类型的保证.这是我的编译器警告,只是我可以安全地忽略吗? (我
12 2024-04-19
编程技术问答社区
为什么会产生警告CS1607 "为'产品版本'指定的版本不是正常的'main.minor.build.revision'格式"?
今天,我得到了为"产品版本"指定的版本不在正常的'mafor.minor.minor.build.revision'格式'格式警告. 这与 AssemblyInformationalVersionAttribute . 我的汇编属性是: [assembly: AssemblyInformationalVersion("XXX 1.1.0")] [assembly: System.Runtime.InteropServices.ComVisible(false)] 基本上,编译器抱怨XXX 1.1.0看起来不像x.y.z.r.来自MSDN: 信息版提供了其他版本的信息 一个字符串格式的组件.仅出于信息目的 并且在运行时不使用.尽管您可以指定任何文本,但是 如果字符串不在 汇编版本编号使用的格式,或者是该格式的格式 但是包含通配符的角色.此警告是无害的. 因此,他们说可能发生无害的警告.问题是,它打破了我的构建.我什至无法抑制CS1607警告(我在项目级别上
10 2024-04-19
编程技术问答社区
没有办法解决dlls之间的冲突
我得到的警告墙类似于我的构建: No way to resolve conflict between "Newtonsoft.Json, Version=7.0.0.0" and "Newtonsoft.Json, Version=6.0.0.0". Choosing "Newtonsoft.Json, Version=7.0.0.0" arbitrarily. 我对以下DLL有其他警告(重复是故意的): Microsoft.Owin System.Web.Http Newtonsoft.Json System.Net.Http.Formatting Microsoft.Owin Microsoft.ApplicationInsights 以及每个警告的匹配消息: Consider app.config remapping of assembly to solve conflict and get rid of warning. 最后,我得到了这场冲突:
16 2024-04-19
编程技术问答社区
'抛出的警告'来自我的代码
我正在编写一个处理某些文件的工具.该工具将具有命令行接口,但也可以用作第三方代码的类库.为了处理错误,我只是提出了一个例外.第三方代码可以处理异常,命令行接口可能只是打印并流产.但是,除了致命的错误外,还可能出现不致命的情况,并且过程可以继续,我想为此"发出警告"并继续. 我如何处理警告,以至于第三方代码和命令行界面都可以使用它? 解决方案 您也为此提供了例外(假设错误条件确实是例外 - 那是很少见的). 例外并不总是致命的 - 您需要投掷第三方代码和命令行代码可以捕获和行动的特定类型. 例外处理的一个规则是处理异常您知道如何处理 - 如果您有错误的特定异常类型,并且您记录了它,则客户端代码应该知道如何处理(或不). 如果您要做的是提供信息使用库中已处理但可能需要知道的代码 - 您可以使用跟踪子系统.所有用户都需要做的就是配置侦听器,并且能够在运行时获得信息. 其他解决方案 我建议您不要抛出例外,如果可能的话,应该避免它们(资源昂贵).相反,您可以
10 2024-04-19
编程技术问答社区
是否有可能在源代码中抑制声锁的警告?
我面临着一些超声的警告,这些警告不会在不久的将来解决(现在应暂时禁用). 在CI上构建期间,声cloud提出了警告.没有任何本地分析仪. 有没有办法在项目,文件,类和/或方法级别上抑制源代码中的一些特定警告? 官方文档没有太大帮助,至少我没有设法找到解决方案. Sonarcloud尊重一些 #pragma warning disable S3881 或其他基于属性的方法或某些全局设置. 解决方案 有多种方法(至少在Java中,但我认为这可能对您有所帮助) GUI方式 - 您可以在其中定义一个键和要匹配特定规则的文件模式.这使您可以.排除规则的测试或文件夹 评论方式(Java版本) - 在Java中,您可以通过用//NOSONAR 拖延扫描仪的整行行,我假设这也可以在C#中起作用(但是请验证,如果合适,请让我们让我们知道) noation方法(Java版本) - 但看起来类似于#pragma警告disabl
20 2024-04-18
编程技术问答社区
MVVM的ReSharper警告
当我使用WPF实现MVVM模式时,我发现Resharper经常警告我,我的ViewModels从未使用过某些属性.问题在于它们被使用,但仅由数据绑定系统使用.是否有人遇到过这种烦恼,并且有没有办法可以帮助ReSharper意识到这些属性确实正在使用?至少,我很高兴与2010年正确地意识到[Import]标记成员不会"始终为null",但希望我也可以解决此问题. 解决方案 您可以使用外部注释来指示使用该方法的使用,从而不警告您.请参阅该您需要用[UsedImplicitlyAttribute]装饰任何此类方法. 在使用属性之前,您会看到: ,然后在应用属性之后: [UsedImplicitly(ImplicitUseTargetFlags.WithMembers)] class NotUsed { public int Field1 { get; set; } public int Field2 { get; set; } } 其他解决方案
8 2024-04-17
编程技术问答社区
抑制来自空的异步方法的警告
让我们继续说我有以下功能: public class Test { public async Task Finalize() { // We don't need this in this class, so empty body } /* * Additional methods snipped */ } 虽然可以正常工作,但我会得到一个编译器警告说: 这种异步方法缺乏"等待"运算符,并且会同步运行.考虑使用"等待"操作员等待非阻止API调用,或"等待任务. 在不修改该方法的情况下,绕过此警告的最佳方法是什么?在这种情况下,由于该方法会被调用,但在这一点上绝对不会发生任何例外,因为我所谈论的班级没有什么可以完成的. 解决方案 您可以将以下指令放在文件上: #pragma warning disable 1998 但是,我建议您独自留下警告,并接受建议.这是有充分理由的警告;)
12 2024-04-17
编程技术问答社区
如果我不听警告 "隐藏继承的成员。要使当前成员覆盖该实施...."
这也许是一个很好的点,但它涉及这样的警告:编译器会发出的话,如果您做类似的事情: class A { public virtual void F() { } } class B : A { public void F() { } } 然后您得到警告: 'EomApp1.B.F()' hides inherited member 'EomApp1.A.F()'. To make the current member override that implementation, add the override keyword. Otherwise use the new keyword. 问题:如果我对此一无所知,警告实际上会发生什么警告?如果我添加"新"关键字与如果不这样做,我的程序会有所不同吗? (注意:我知道我可以很容易地测试,但我认为值得在这里问) 解决方案 它不会做任何事情,但是您在那里的方法也不是多态性的.如果您开始使用基类参
10 2024-04-17
编程技术问答社区
为什么Unity和C#Dev Kit扩展名会发出错误/多余的警告?
我正在使用Visual Studio代码在C#中写下我的脚本.不幸的是,我有多余的警告可以解决我的项目破产.我大多是在谈论: IDE0051删除未使用的私人会员 - 函数start()&update() IDE0044将字段读取 - 我正在为我的私人字段使用[serializefields],这将它们更改为ReadOnly使其在Inspector中不可见. 使用#pragma warning disable有效,但我正在寻找整个项目的解决方案. 这些警告的主.NET Microsoft网站(在这里和 解决方案 最近有一些更改以支持VS代码中的统一性.请参阅 https://devblogs.microsoft. com/visualStudio/宣布 - 不延伸 - vis-studio-code/.通过将C#DEV KIT扩展扩展到预释放的0.4.2版本,通过不正确错误的根问题已经解决了,通过更新和删除.editorConfig文件来检查它是否有效( source ).
10 2024-04-17
编程技术问答社区
ClickOnce应用程序安装-安全警告
我有一个在网站上部署的ClickOnce应用程序(例如, http://example.com )和用户将从该网站下载我已发布的应用程序的setup.exe文件,然后在其计算机上安装该应用程序. 我已经通过Godaddy为我的公司签发的证书签署了我的申请的Clickonce清单. 但是,当用户尝试安装我的应用程序时,他们仍然会收到以下应用程序安全警告.有没有办法解决此安全警告,根本不会显示? 任何帮助将不胜感激. 解决方案 好吧,您必须按照MSDN-Library中的步骤(来源): 在用户桌面上启动clickonce应用程序时 第一次,.NET框架运行时将首先检查以确保 由于它们是 与用于签名的任何发布者证书签名.如果 他们通过该检查,运行时将查看可信赖的根部 认证机构商店,看看是否 出版商证书的发行人安装在该商店中.它 然后,将查看证书上的出版商是谁,看看是否 他们的证书在受信任的出版商商店中. 如果这两个 事情是正确的,然后默认情况下不会提示用户,并且
10 2024-04-15
编程技术问答社区
ClickOnce应用程序安装-安全警告
我有一个在网站上部署的ClickOnce应用程序(例如, http://example.com )和用户将从该网站下载我已发布的应用程序的setup.exe文件,然后在其计算机上安装该应用程序. 我已经通过Godaddy为我的公司签发的证书签署了我的申请的Clickonce清单. 但是,当用户尝试安装我的应用程序时,他们仍然会收到以下应用程序安全警告.有没有办法解决此安全警告,根本不会显示? 任何帮助将不胜感激. 解决方案 好吧,您必须按照MSDN-Library中的步骤(来源): 在用户桌面上启动clickonce应用程序时 第一次,.NET框架运行时将首先检查以确保 由于它们是 与用于签名的任何发布者证书签名.如果 他们通过该检查,运行时将查看可信赖的根部 认证机构商店,看看是否 出版商证书的发行人安装在该商店中.它 然后,将查看证书上的出版商是谁,看看是否 他们的证书在受信任的出版商商店中. 如果这两个 事情是正确的,然后默认情况下不会提示用户,并且
12 2024-04-15
编程技术问答社区
即使在WPF跟踪设置关闭的情况下,输出窗口也会出现奇怪的资源字典警告。
我正在使用" Visual Studio 2011 Beta" Beta,并安装了2012年4月更新.我有调试选项 - >输出窗口> wpf跟踪设置所有值,包括资源词典关闭.但是我仍然继续看到警告消息,例如 System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='CheckBoxCooperStyle1' 如果他们不是误报,如何调试这种警告? 解决方案 来自Microsoft支持团队的答复"谢谢您的更新.我担心这一点,因为我的测试找到了相似的结果.似乎有一些内部WPF跟踪代码,这些代码不符合指定的设置.同时,除了找到资源词典(或相关类型)并纠正跟踪输出警告的问题外,我们没有任何建议. 如果附加了调试器,则无论iDE中指定的设置如何(或在app.config)中指定的设置如何,总是会发出一些WPF跟踪.不幸的是,您收到的输出似乎属于此类别.遗憾的是,无
8 2024-04-13
编程技术问答社区
如果打算隐藏,则使用新的关键字
我有以下代码段,它生成了"如果隐藏的意图使用新关键字",则在VS2008中警告: public double Foo(double param) { return base.Foo(param); } 基础类中的Foo()功能受到保护,我想通过将其放入包装程序类中,仅出于单位测试的目的,将其暴露于单位测试中. IE.包装类别将不会用于其他任何东西.所以我有一个问题是:这种接受的做法是吗? 回到new警告. 为什么在这种情况下我必须介绍重大功能? 解决方案 new只是明确表明您知道自己正在踩在现有方法上.由于现有代码为protected,因此并不是那么大 - 您可以安全地添加new以阻止它mo吟. 当您的方法做一些不同的事情时,区别就会出现;引用 dedived 类和调用Foo()的任何变量都会做一些与引用 base 类和调用Foo()的对象不同的(即使使用相同的对象): SomeDerived obj = new SomeDerived(); o
10 2024-04-13
编程技术问答社区
C#无法加载文件或程序集...系统无法找到指定文件
编写一个常规Winforms应用程序,该应用程序引用了我自己写的一些自定义库.我正在构建一个依赖另一个库的特定库,当我这样做时,我会收到以下警告消息: "无法加载文件或汇编'Rhlib'版本1.0.0.0, 文化=中性,publicKeyToken = null'或其依赖性之一.这 系统找不到指定的文件" 应用程序功能,没有错误消息,但是我是喜欢完全干净的编译的人之一 - 没有错误,没有警告.我无法弄清楚这个. 所讨论的库有一个"丢失"库的引用,"丢失"库是编译的,并且在VS完成编译时生活在调试目录中,构建顺序将"丢失"库作为构建的第一个项目和"丢失"库没有依赖关系 - 它是一个小型库,旨在使我摆脱圆形的组装问题. 有什么想法? 解决方案 即使警告来自使用"丢失"库的库,添加了称为库的应用程序的引用,该应用程序称为"丢失"库,该库删除了警告. 说明:原始组件(我们将其称为AS0)称为另一个组件(我们将其称为AS1).但是,AS1在AS0的参考列表中,
8 2024-04-12
编程技术问答社区
定义运算符==但不定义Equals()或GetHashCode()有什么问题?
对于下面的代码 public struct Person { public int ID; public static bool operator ==(Person a, Person b) { return a.Equals(b); } public static bool operator !=(Person a, Person b) { return !a.Equals(b); } } 为什么编译器给我这些警告? 不定义下面的方法有什么问题? warning CS0660: 'Person' defines operator == or operator != but does not override Object.Equals(object o) warning CS0661: 'Person' defines operator == or operator != but does not override Obj
8 2024-04-12
编程技术问答社区
c#警告 - 带有中性resurcesLanguageAgeAgeTribute的标记组件
我会收到以下警告: Ca1824 标记带有中性rangugeAgeatTribute 的标记组件 根据MSDN,其原因是: 一个组件包含基于RESX的资源,但没有系统.intralresourcesLanguagageAgeatTribute应用于它. 任何人都可以解释一下这意味着什么? 我不想定义特定的文化环境. 我希望它们可以自定义. 解决方案 NeutralResourcesLanguageAttribute将资源管理器告知用于显示主要组件中包含的资源的语言.例如.如果您对组件进行了编码,以便包含英语的资源,则在汇编中包含以下几行.cs [assembly: NeutralResourcesLanguage("en")] 以这种方式,当以英语查找资源时,资源经理不会寻找英国文化卫星组装,而只是使用主组装中包含的资源.这纯粹是性能优化. 其他解决方案 上一个答案说明了如何修复assemblyInfo.cs文件,但是如果您没有一个文件
12 2024-04-12
编程技术问答社区