C# 默认情况下启用PowerPoint VSF以加载项

C# 默认情况下启用PowerPoint VSF以加载项,c#,.net,vsto,powerpoint,C#,.net,Vsto,Powerpoint,当我安装基于VSTO的PowerPoint插件时,它总是显示在“禁用”部分,每次打开PowerPoint时,我都必须手动启用它 如何以编程方式更改此行为,使插件在默认情况下始终处于启用状态。当您将Office(VSTO)加载项设置为启用(在Office中)时,它会更改注册表项: HKLM\SOFTWARE\Microsoft\Office\PowerPoint\Addins\YourAssemblyName "LoadBehavior" LoadBehavior值必须设置为3才能加载(即启用)

当我安装基于VSTO的PowerPoint插件时,它总是显示在“禁用”部分,每次打开PowerPoint时,我都必须手动启用它

如何以编程方式更改此行为,使插件在默认情况下始终处于启用状态。

当您将Office(VSTO)加载项设置为启用(在Office中)时,它会更改注册表项:

HKLM\SOFTWARE\Microsoft\Office\PowerPoint\Addins\YourAssemblyName "LoadBehavior"
LoadBehavior值必须设置为3才能加载(即启用)(2表示禁用)

Office程序通常仅在出现问题时将此LoadBehavior设置更改回2(例如启动事件代码中的异常、找不到程序集等) 所以你需要弄清楚发生了什么(调试你的启动或做一些日志记录)

在任何情况下,要通过编程进行设置,您都需要编写一些代码来更改此注册表设置

我在安装程序中使用NSIS进行安装,例如:

StrCpy $0 "SOFTWARE\Microsoft\Office\PowerPoint\Addins\YourAssemblyName"

WriteRegStr HKLM $0 "Description" "Product Name"
WriteRegStr HKLM $0 "FriendlyName" "Product Name"
WriteRegDWORD HKLM $0 "LoadBehavior" 3
WriteRegStr HKLM $0 "Manifest" "$INSTDIR\YourAssemblyName.vsto|vstolocal"
将Office(VSTO)加载项设置为启用(在Office中)时,会更改注册表项:

HKLM\SOFTWARE\Microsoft\Office\PowerPoint\Addins\YourAssemblyName "LoadBehavior"
LoadBehavior值必须设置为3才能加载(即启用)(2表示禁用)

Office程序通常仅在出现问题时将此LoadBehavior设置更改回2(例如启动事件代码中的异常、找不到程序集等) 所以你需要弄清楚发生了什么(调试你的启动或做一些日志记录)

在任何情况下,要通过编程进行设置,您都需要编写一些代码来更改此注册表设置

我在安装程序中使用NSIS进行安装,例如:

StrCpy $0 "SOFTWARE\Microsoft\Office\PowerPoint\Addins\YourAssemblyName"

WriteRegStr HKLM $0 "Description" "Product Name"
WriteRegStr HKLM $0 "FriendlyName" "Product Name"
WriteRegDWORD HKLM $0 "LoadBehavior" 3
WriteRegStr HKLM $0 "Manifest" "$INSTDIR\YourAssemblyName.vsto|vstolocal"

之前的启动代码中有一个问题,它崩溃了。但是,即使经过几次迭代(使用看似正常的代码),它也不会自动加载。这可能与第一次崩溃有关吗?查看注册表设置,似乎在启动powerpoint实例后,从3变为2。然后,如果我手动启用它,pluing工作正常。这里可能存在哪些潜在问题?我所做的就是用try-catch块在启动代码中创建一个目录和一个文件,我可以在我的代码中找到一些有趣的东西,我的外接程序在默认情况下正在加载。酷。之前启动代码有问题,它崩溃了。但是,即使经过几次迭代(使用看似正常的代码),它也不会自动加载。这可能与第一次崩溃有关吗?查看注册表设置,似乎在启动powerpoint实例后,从3变为2。然后,如果我手动启用它,pluing工作正常。这里可能存在哪些潜在问题?我所做的就是用try-catch块在启动代码中创建一个目录和一个文件,我可以在我的代码中找到一些有趣的东西,我的外接程序在默认情况下正在加载。酷。