Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 签署office COM加载项_C#_Ms Office_Class Library_Comaddin_Netoffice - Fatal编程技术网

C# 签署office COM加载项

C# 签署office COM加载项,c#,ms-office,class-library,comaddin,netoffice,C#,Ms Office,Class Library,Comaddin,Netoffice,我开发了一个基于NetOffice的扩展。我的office配置要求应用程序由受信任的发布者签名。我尝试用有效的证书用signtool.exe对输出DLL进行签名,但不幸的是,Office说“没有可用的数字签名” 可通过以下方式启用该选项: 文件→ 选择权→ 信托中心→ 信任中心设置→ 加载项→ 要求受信任的发布者对应用程序加载项进行签名 签署DLL的合适方法是什么 当使用VSTO时,ClickOnce处理签名,并且为DLL创建了一个.manifest文件,我不确定是否需要它,但我无法为我的类库创

我开发了一个基于NetOffice的扩展。我的office配置要求应用程序由受信任的发布者签名。我尝试用有效的证书用signtool.exe对输出DLL进行签名,但不幸的是,Office说“没有可用的数字签名”

可通过以下方式启用该选项:

文件→ 选择权→ 信托中心→ 信任中心设置→ 加载项→ 要求受信任的发布者对应用程序加载项进行签名

签署DLL的合适方法是什么

当使用VSTO时,ClickOnce处理签名,并且为DLL创建了一个.manifest文件,我不确定是否需要它,但我无法为我的类库创建一个

我在网上找到的一些信息:


首先,使用pvk2pfx.exe创建一个.pfx文件:

  • “C:{PATH}\pvk2pfx.exe”-pvk{pvk FILE NAME}-pi{cert owner NAME}-spc{spc FILE NAME}-pfx{pfx FILE NAME}
  • e、 g.:“C:\Program Files\Microsoft SDK\Windows\v7.1\Bin\pvk2pfx.exe”-pvk mypvkfile.pvk-pi公司名称-spcmyspc文件.spc-pfxmypfxfile.pfx
然后使用SignTool.exe实用程序:

  • signtool sign/f“C:{PATH}\mypfxfile.pfx”/p{cert owner name}”C:{PATH}\setup.exe

这就是我签字的方式。我在所有DLL和Exe文件上都使用了这个,然后也对安装程序进行了签名。所以它显然签名正确,但Office仍然抱怨它没有签名?是的。事情是,我得到了另一个插件,是本地C++与COM和ATL -它工作如预期。但对托管加载项使用完全相同的步骤是行不通的:(我看到外接程序Express以某种方式能够正确地签署托管外接程序。不幸的是,我没有机会弄清楚两者之间的区别。这里有些奇怪,但我承认,奇怪的是,我似乎从未遇到过受信任的发布者列表-而且我已经构建了几十个外接程序。请给我一点时间,我将刷新我对该机制的理解。)希望我能帮上忙。