Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >IL3002:当发布为单个文件时,避免调用

IL3002:当发布为单个文件时,避免调用

作者头像
呆呆
发布于 2022-02-26 00:47:55
发布于 2022-02-26 00:47:55
47900
代码可运行
举报
文章被收录于专栏:centosDaicentosDai
运行总次数:0
代码可运行

规则 ID

IL3002

类别

SingleFile

修复是中断修复还是非中断修复

非中断

原因

将应用发布为单个文件(例如将项目中的 PublishSingleFile 属性设置为 true)时,调用使用 RequiresAssemblyFilesAttribute 属性注释的成员与单文件不兼容。 这些调用可能不兼容,因为使用此属性注释的成员要求程序集文件位于磁盘上,而嵌入单文件应用的程序集已加载到内存中。

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[RequiresAssemblyFiles(Message="Use 'MethodFriendlyToSingleFile' instead", Url="http://help/assemblyfiles")]
void MethodWithAssemblyFilesUsage()
{
}
void TestMethod()
{
    // IL3002: Using member 'MethodWithAssemblyFilesUsage' which has 'RequiresAssemblyFilesAttribute'
    // can break functionality when embedded in a single-file app. Use 'MethodFriendlyToSingleFile' instead. http://help/assemblyfiles
    MethodWithAssemblyFilesUsage();
}

如何解决冲突

使用“RequiresAssemblyFilesAttribute”属性注释的成员有一条消息,用于向发布为单个文件的用户提供有用的信息。 请考虑根据属性的消息调整现有代码,或者删除有冲突的调用。

何时禁止显示警告

如果已根据“RequiresAssemblyFilesAttribute”属性消息中概述的建议调整现有代码,则可禁止显示警告。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
IL3001:当发布为单个文件时,避免访问程序集文件路径
发布为单文件(例如,通过将项目中的 PublishSingleFile 属性设置为 true)时,为单文件捆绑包内嵌入的程序集调用 Assembly.GetFile(s) 方法将始终引发异常,因为这些方法与单文件不兼容。
呆呆
2022/02/26
5260
IL3000:当发布为单个文件时,避免访问程序集文件路径
发布为单文件(例如将项目中的 PublishSingleFile 属性设置为 true)时,调用嵌入在单文件捆绑包内的程序集的 Assembly.Location 属性将始终返回空字符串。
呆呆
2022/02/26
5500
CA1041:提供 ObsoleteAttribute 消息
类型和成员使用了未指定其 System.ObsoleteAttribute.Message 属性的 System.ObsoleteAttribute 特性进行标记。
呆呆
2022/01/10
3050
CA1016:用 AssemblyVersionAttribute 标记程序集
.NET 使用版本号来唯一标识程序集,并绑定到强名称程序集中的类型。 版本号与版本和发行者策略一起使用。 默认情况下,仅使用用于生成应用程序的程序集版本运行应用程序。
用户4268038
2022/01/10
5770
CA1017:用 ComVisibleAttribute 标记程序集
程序集没有已应用的 System.Runtime.InteropServices.ComVisibleAttribute 属性。
用户4268038
2022/01/10
3650
CA1700:不要用“Reserved”命名枚举值
此规则假定当前不使用名称中包含“reserved”的枚举成员,而是将其作为一个占位符,以在将来的版本中重命名或移除它。 重命名或移除成员是一项重大更改。 不应期望用户仅因为成员名称包含“reserved”而忽略该成员,也不能指望用户阅读或遵守文档。 此外,由于预留成员显示在对象浏览器和智能集成开发环境中,因此他们可能会造成混淆,以致于不知道实际使用哪些成员。
呆呆
2022/02/18
5250
CA1849:当在异步方法中时,调用异步方法
从任务返回方法调用时,存在 Async 后缀等效项的所有方法都会生成此警告。 此外,调用 Task.Wait()、Task<T>.Result 或 Task.GetAwaiter().GetResult() 将生成此警告。
呆呆
2022/02/26
1K0
CA1707:标识符不应包含下划线
按照约定,标识符名称不包含下划线 (_) 字符。 该规则将检查命名空间、类型、成员和参数。
呆呆
2022/02/18
4980
CA1014:用 CLSCompliantAttribute 标记程序集
程序集没有已应用的 System.CLSCompliantAttribute 属性。
用户4268038
2022/01/10
3490
CA1805:避免进行不必要的初始化。
在运行构造函数之前,.NET 运行时将引用类型的所有字段初始化为其默认值。 在大多数情况下,在构造函数中将字段显式初始化为其默认值是多余的,这会增加维护成本,并可能会降低性能(例如,随着程序集大小的增加),可以删除显式初始化。
呆呆
2022/02/19
3960
CA1033:接口方法应可由子类型调用
未密封的外部可见类型提供了显式实现公共接口的方法,但没有提供具有相同名称的其他外部可见方法。
用户4268038
2022/01/10
5290
CA1831:在合适的情况下,为字符串使用 AsSpan 而不是基于范围的索引器
对字符串使用了范围索引器,并将值隐式分配给了 ReadOnlySpan<char>。
用户4268038
2022/02/19
1.2K0
CA1200:不要使用带前缀的 cref 标记
XML 文档标记中的 cref 属性是指“代码引用”。 它指定标记的内部文本是一个代码元素,例如类型、方法或属性。 避免使用带有前缀的 cref 标记,因为它会阻止编译器验证引用。 它还会阻止 Visual Studio 集成开发环境 (IDE) 在重构过程中查找和更新这些符号引用。 建议使用不带前缀的完整语法以引用 cref 标记中的符号名称。
呆呆
2022/02/22
5450
CA1812:避免未实例化的内部类
无法实例化且仅定义 static(在 Visual Basic 中为 Shared)方法的类型。
呆呆
2022/02/19
5130
CA3002:查看 XSS 漏洞的代码
在处理来自 Web 请求的不受信任的输入时,请注意防范跨站脚本 (XSS) 攻击。 XSS 攻击会将不受信任的输入注入原始 HTML 输出,使攻击者可以执行恶意脚本或恶意修改网页中的内容。 一个典型的技术是将包含恶意代码的 <script> 元素放入输入中。 有关详细信息,请参阅 OWASP 的 XSS。
呆呆
2022/02/20
6970
CA1847:对单个字符使用 string.Contains(char) 而不是 string.Contains(string)
当 string.Contains(char) 可用时使用 string.Contains(string)。
呆呆
2022/02/26
5440
CA1050:在命名空间中声明类型
应在命名空间内声明类型以避免名称冲突,并作为一种在对象层次结构中组织相关类型的方式。 任何命名的命名称空间之外的类型均位于无法在代码中引用的全局命名空间中。
呆呆
2022/01/10
5020
CA1053:静态容器类型不应具有默认构造函数
规则 CA1053 仅适用于旧版 Visual Studio 代码分析。 在 .NET 代码质量分析器中,该规则已合并到规则 CA1052:静态容器类型应为 Static 或 NotInheritable 中。
呆呆
2022/01/10
4530
CA1824:用 NeutralResourcesLanguageAttribute 标记程序集
程序集包含基于 ResX 的资源,但没有向其应用 System.Resources.NeutralResourcesLanguageAttribute。
用户4268038
2022/02/19
5350
CA1047:不要在密封类型中声明受保护的成员
公共类型是 sealed(在 Visual basic 中为 NotInheritable),并声明了一个受保护的成员或受保护的嵌套类型。 此规则不报告 Finalize 方法的冲突,这些方法必须遵循此模式。
呆呆
2022/01/10
6840
推荐阅读
相关推荐
IL3001:当发布为单个文件时,避免访问程序集文件路径
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档