EmitBaseline.CreateInitialBaseline 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
CreateInitialBaseline(ModuleMetadata, Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>)
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
注意
This overload is no longer supported
EmitBaseline在编辑之前,从模块的元数据以及从方法映射到本地名称数组的函数创建 。
public:
static Microsoft::CodeAnalysis::Emit::EmitBaseline ^ CreateInitialBaseline(Microsoft::CodeAnalysis::ModuleMetadata ^ module, Func<System::Reflection::Metadata::MethodDefinitionHandle, Microsoft::CodeAnalysis::Emit::EditAndContinueMethodDebugInformation> ^ debugInformationProvider);
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider);
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Obsolete("This overload is no longer supported", true)]
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider);
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> -> Microsoft.CodeAnalysis.Emit.EmitBaseline
[<System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)>]
[<System.Obsolete("This overload is no longer supported", true)>]
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> -> Microsoft.CodeAnalysis.Emit.EmitBaseline
Public Shared Function CreateInitialBaseline (module As ModuleMetadata, debugInformationProvider As Func(Of MethodDefinitionHandle, EditAndContinueMethodDebugInformation)) As EmitBaseline
参数
- module
- ModuleMetadata
编辑前模块的元数据。
- debugInformationProvider
- Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>
方法句柄的函数将编译器发出的“编辑并继续”调试信息返回到 PDB 中。 如果无法读取指定方法的调试信息,函数应引发 InvalidDataException 。 此异常和 IOException 会被捕获并转换为发出诊断。 传递其他异常。
返回
EmitBaseline模块的 。
- 属性
例外
module
不是 PE 映像。
debugInformationProvider
为 null。
读取模块元数据时出错。
模块元数据无效。
模块已被释放。
适用于
CreateInitialBaseline(ModuleMetadata, Func<MethodDefinitionHandle, EditAndContinueMethodDebugInformation>, Func<MethodDefinitionHandle, StandaloneSignatureHandle>, Boolean)
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
注意
This overload is no longer supported
EmitBaseline在编辑之前,从模块的元数据以及从方法映射到本地名称数组的函数创建 。
public:
static Microsoft::CodeAnalysis::Emit::EmitBaseline ^ CreateInitialBaseline(Microsoft::CodeAnalysis::ModuleMetadata ^ module, Func<System::Reflection::Metadata::MethodDefinitionHandle, Microsoft::CodeAnalysis::Emit::EditAndContinueMethodDebugInformation> ^ debugInformationProvider, Func<System::Reflection::Metadata::MethodDefinitionHandle, System::Reflection::Metadata::StandaloneSignatureHandle> ^ localSignatureProvider, bool hasPortableDebugInformation);
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider, Func<System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle> localSignatureProvider, bool hasPortableDebugInformation);
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Obsolete("This overload is no longer supported", true)]
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider, Func<System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle> localSignatureProvider, bool hasPortableDebugInformation);
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> * Func<System.Reflection.Metadata.MethodDefinitionHandle, System.Reflection.Metadata.StandaloneSignatureHandle> * bool -> Microsoft.CodeAnalysis.Emit.EmitBaseline
[<System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)>]
[<System.Obsolete("This overload is no longer supported", true)>]
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> * Func<System.Reflection.Metadata.MethodDefinitionHandle, System.Reflection.Metadata.StandaloneSignatureHandle> * bool -> Microsoft.CodeAnalysis.Emit.EmitBaseline
Public Shared Function CreateInitialBaseline (module As ModuleMetadata, debugInformationProvider As Func(Of MethodDefinitionHandle, EditAndContinueMethodDebugInformation), localSignatureProvider As Func(Of MethodDefinitionHandle, StandaloneSignatureHandle), hasPortableDebugInformation As Boolean) As EmitBaseline
参数
- module
- ModuleMetadata
编辑前模块的元数据。
- debugInformationProvider
- Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>
方法句柄的函数将编译器发出的“编辑并继续”调试信息返回到 PDB 中。 如果无法读取指定方法的调试信息,函数应引发 InvalidDataException 。 此异常和 IOException 会被捕获并转换为发出诊断。 传递其他异常。
- localSignatureProvider
- Func<MethodDefinitionHandle,StandaloneSignatureHandle>
方法句柄返回其局部变量的签名的函数。 如果无法读取指定方法的信息,函数应引发 InvalidDataException 。 此异常和 IOException 会被捕获并转换为发出诊断。 传递其他异常。
- hasPortableDebugInformation
- Boolean
如此 如果基线 PDB 是可移植的。
返回
EmitBaseline模块的 。
- 属性
例外
localSignatureProvider
为 null。
读取模块元数据时出错。
模块元数据无效。
模块已被释放。
注解
仅使用此方法创建初始基线;在发出后续编译的差异时,会自动创建后续基线。
当活动方法 (在堆栈上分配帧的方法) 更新时,需要保留其局部变量的值。 元数据中不包括本地变量名称到其槽的映射,因此需要由 debugInformationProvider
提供。
debugInformationProvider
仅在初始生成时需要 。 后续代系的映射通过 EmitBaseline传递。 编译器将槽分配给命名局部变量 (包括命名临时变量) 它们在源代码中的显示顺序。 此属性允许编译器为初始生成重新构造局部变量映射。 后续生成可以在上一代的两个变量之间添加新变量。 由于需要保留上一代变量的槽,因此唯一的选择是将这些新变量添加到末尾。 因此,槽排序不再与语法排序匹配。 因此,有必要传递给 Baseline 下一代 (而不是例如,基于后续编译) 生成的元数据从头开始创建新的 EmitBaseline。
适用于
CreateInitialBaseline(Compilation, ModuleMetadata, Func<MethodDefinitionHandle, EditAndContinueMethodDebugInformation>, Func<MethodDefinitionHandle, StandaloneSignatureHandle>, Boolean)
- Source:
- EmitBaseline.cs
- Source:
- EmitBaseline.cs
EmitBaseline在编辑之前,从模块的元数据以及从方法映射到本地名称数组的函数创建 。
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.Compilation compilation, Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider, Func<System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle> localSignatureProvider, bool hasPortableDebugInformation);
static member CreateInitialBaseline : Microsoft.CodeAnalysis.Compilation * Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> * Func<System.Reflection.Metadata.MethodDefinitionHandle, System.Reflection.Metadata.StandaloneSignatureHandle> * bool -> Microsoft.CodeAnalysis.Emit.EmitBaseline
Public Shared Function CreateInitialBaseline (compilation As Compilation, module As ModuleMetadata, debugInformationProvider As Func(Of MethodDefinitionHandle, EditAndContinueMethodDebugInformation), localSignatureProvider As Func(Of MethodDefinitionHandle, StandaloneSignatureHandle), hasPortableDebugInformation As Boolean) As EmitBaseline
参数
- compilation
- Compilation
初始 Microsoft.CodeAnalysis.Emit.EmitBaseline.Compilation。
- module
- ModuleMetadata
编辑前模块的元数据。
- debugInformationProvider
- Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>
方法句柄的函数将编译器发出的“编辑并继续”调试信息返回到 PDB 中。 如果无法读取指定方法的调试信息,函数应引发 InvalidDataException 。 此异常和 IOException 会被捕获并转换为发出诊断。 传递其他异常。
- localSignatureProvider
- Func<MethodDefinitionHandle,StandaloneSignatureHandle>
方法句柄返回其局部变量的签名的函数。 如果无法读取指定方法的信息,函数应引发 InvalidDataException 。 此异常和 IOException 会被捕获并转换为发出诊断。 传递其他异常。
- hasPortableDebugInformation
- Boolean
如此 如果基线 PDB 是可移植的。
返回
EmitBaseline模块的 。
例外
localSignatureProvider
为 null。
读取模块元数据时出错。
模块元数据无效。
模块已被释放。
注解
仅使用此方法创建初始基线;在发出后续编译的差异时,会自动创建后续基线。
当活动方法 (在堆栈上分配帧的方法) 更新时,需要保留其局部变量的值。 元数据中不包括本地变量名称到其槽的映射,因此需要由 debugInformationProvider
提供。
debugInformationProvider
仅在初始生成时需要 。 后续代系的映射通过 EmitBaseline传递。 编译器将槽分配给命名局部变量 (包括命名临时变量) 它们在源代码中的显示顺序。 此属性允许编译器为初始生成重新构造局部变量映射。 后续生成可以在上一代的两个变量之间添加新变量。 由于需要保留上一代变量的槽,因此唯一的选择是将这些新变量添加到末尾。 因此,槽排序不再与语法排序匹配。 因此,有必要传递给 Baseline 下一代 (而不是例如,基于后续编译) 生成的元数据从头开始创建新的 EmitBaseline。