VSProject2.GenerateKeyPairFiles(String, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
生成一个公钥/私钥文件,用于构成程序集的强名称。
void GenerateKeyPairFiles(std::wstring const & strPublicPrivateFile, std::wstring const & strPublicOnlyFile = "0");
[System.Runtime.InteropServices.DispId(15)]
public void GenerateKeyPairFiles (string strPublicPrivateFile, string strPublicOnlyFile = "0");
[<System.Runtime.InteropServices.DispId(15)>]
abstract member GenerateKeyPairFiles : string * string -> unit
Public Sub GenerateKeyPairFiles (strPublicPrivateFile As String, Optional strPublicOnlyFile As String = "0")
参数
- strPublicPrivateFile
- String
要生成的文件的名称。
- strPublicOnlyFile
- String
如果为 true,则只生成公钥。
实现
- 属性
示例
此示例将生成一个包含密钥对的二进制文件。 若要查看生成的文件,请使用 " Sn.exe (强名称工具) "。 若要将此示例作为外接程序运行,请参阅 如何:编译和运行自动化对象模型代码示例。 Visual Basic Visual C# 在运行此示例之前,请打开或项目。
[Visual Basic]
' Add-in code.
Imports VSLangProj
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
applicationObject = CType(application, DTE2)
addInInstance = CType(addInInst, AddIn)
GenerateKeyPairs(applicationObject)
End Sub
Sub GenerateKeyPairs(ByVal dte As DTE2)
Dim aProject As Project
Dim aVSProject As VSProject2
aProject = applicationObject.Solution.Projects.Item(1)
aVSProject = CType(applicationObject.Solution.Projects.Item(1)._
Object, VSProject2)
' Replace <file path> with an actual file path.
aVSProject.GenerateKeyPairFiles("<file path>\MyKeyText.bin", "0")
End Sub
[C#]
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application,
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
applicationObject = (DTE2)application;
addInInstance = (AddIn)addInInst;
GenerateKeyPair((DTE2)applicationObject);
}
public void GenerateKeyPair(DTE2 dte)
{
Project aProject = null;
VSProject2 aVSProject = null;
aProject = applicationObject.Solution.Projects.Item(1);
aVSProject = ((VSProject2)(
applicationObject.Solution.Projects.Item(1).Object));
// Replace the <file path> with an actual path.
aVSProject.GenerateKeyPairFiles
("<file path>\\MyKeyText2.bin", "0");
}
注解
强名称由程序集的标识(它的简单文本名称、版本号和区域性信息, (如果提供了) )加上公钥和数字签名组成。 用于创建数字签名的公钥/私钥对可以存储在文件中,也可以存储在加密服务提供程序中的容器内。 Sn.exe (强名称工具) 创建文件或容器。 容器名称由用户在运行该工具时指定,并在此属性中使用相同的名称。 有关详细信息,请参阅具有强名称的程序集。
加密服务提供程序是一个独立的软件模块,它执行用于身份验证、编码和加密的加密算法。 有关更多信息,请参阅加密服务。