使用Visual Studio 2015开发MS Access 2016加载项(功能区/ VSTO)

罗杰维尔科

希望您能够帮助我。我期待使用Visual Studio 2015(带状功能区栏,如VSTO)对我的第一个MS Access加载项进行编程,但是还没有开始,我必须已经停止。Visual Studio提供了几乎所有办公产品的模板,但MS Access却提供。我听说可以“更改”例如Excel VSTO-Template,以便可以将其用于开发MS Access功能区。有谁知道如何处理这个好的指示?您如何开发用于MS Access的VSTO?

谢谢你的帮助

克里斯

有一个教程。我没有尝试过,不知道它是否有效,但听起来很有希望。

这是多汁的位。


  1. 要开始构建Access加载项,我可以创建Word(或InfoPath,PowerPoint,Project或Visio)加载项(Excel或Outlook也可以,但是它们具有其他特定于主机的冗余代码)。

  2. 然后,我将在COM选项卡上添加对Microsoft Access Object Library的引用(这还将引入对ADODB和DAO的引用)。它还会拉入Microsoft.Office.Core.dll,它会复制默认情况下已引用的Office.dll-因此,我将删除这两个重复项之一。

  3. 在解决方案资源管理器中,我可以选择项目,然后单击“显示所有文件”按钮。这样可以更轻松地打开ThisAddIn.Designer.cs文件-在这里,我可以将Application字段的声明和初始化从MOIWord.Application更改为MOIAccess.Application。请注意,此步骤将更改自动生成的文件:通常不会重新生成该文件,但是如果我破坏了项目,则可能会重新生成(这一点是,如果重新生成该文件,我的手动更改将会丢失):

//internal Microsoft.Office.Interop.Word.Application Application;
internal Microsoft.Office.Interop.Access.Application Application;

//this.Application = this.GetHostItem<Microsoft.Office.Interop.Word.Application>(typeof(Microsoft.Office.Interop.Word.Application), "Application");
this.Application = this.GetHostItem<Microsoft.Office.Interop.Access.Application>(typeof(Microsoft.Office.Interop.Access.Application), "Application");
  1. 这就是所有代码更改。现在进行项目更改。有两种方法可以进行这些更改-通过IDE覆盖或抵消默认设置。或直接手动编辑.csproj文件以替换默认设置。让我们看一下这两种方法:首先通过IDE,然后手动进行。

  2. 首先,我将更改项目属性| 调试| 启动操作,以“启动外部程序”,并指定Access的路径,例如:

    C:\ Program Files(x86)\ Microsoft Office \ Office12 \ MSACCESS.EXE

  3. 然后,我将创建一个名称与我的外接程序解决方案相同的.reg文件,并将其放入解决方案文件夹中。此reg文件用于注册用于Access的加载项(并为Word取消注册)。下面列出的示例reg文件只是标准VSTO构建任务针对每种加载项类型所做的工作的转储,带有额外的一行。附加行(下面的第一个reg条目)只是删除了构建任务为Word放入的条目。其余条目对于Word和Access都是相同的,唯一的变化是将“ Word”替换为“ Access”:

Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\MyAddIn]
[HKEY_CURRENT_USER\Software\Microsoft\Office\Access\Addins\MyAddIn]
"Description"="MyAddIn"
"FriendlyName"="MyAddIn"
"LoadBehavior"=dword:00000003
"Manifest"="C:\\Temp\\MyAddIn\\bin\\Debug\\MyAddIn.vsto|vstolocal"
  1. 在项目属性中| 生成事件,我添加了一个生成后事件命令行,以将.reg文件合并到注册表中:

    regedit / s“ $(SolutionDir)$(SolutionName).reg”

  2. 而已。现在,我可以按F5键来构建解决方案:这将为Access注册该加载项,并在加载该加载项的情况下运行Access进行调试。

  3. 请注意,除了将Debug属性设置为外部程序(上面的第4步)外,我还可以直接修改.csproj文件,以将Word设置为Access。例如,更改此:

<ProjectProperties HostName="Word"
  HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" OfficeVersion="12.0" VstxVersion="3.0"
  ApplicationType="Word" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\12.0\Word\InstallRoot\Path#WINWORD.EXE"
  AddItemTemplatesGuid="{147FB6A7-F239-4523-AE65-B6A4E49B361F}" />

…对此:

<ProjectProperties HostName="Access"
  HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" OfficeVersion="12.0" VstxVersion="3.0"
  ApplicationType="Access" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\12.0\Access\InstallRoot\Path#MSACCESS.EXE"
  AddItemTemplatesGuid="{147FB6A7-F239-4523-AE65-B6A4E49B361F}" />

请注意,如上所示,更改值将更改解决方案资源管理器中使用的图标。

  1. 我还可以更改元素的Name值,以在解决方案资源管理器中更改ThisAddIn.cs的父节点的名称。更改此:
<Host Name="Word" GeneratedCodeNamespace="MyAddIn" IconIndex="0">
  <HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
</Host>

…对此:

<Host Name="Access" GeneratedCodeNamespace="MyAddIn" IconIndex="0">
  <HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
</Host>
  1. 同样,注册由元素值决定。因此,除了将.reg文件设置为构建后任务(上述步骤5-6)之外,我还可以直接编辑.csproj来更改此设置:
<OfficeApplication>Word</OfficeApplication>

…对此:

<OfficeApplication>Access</OfficeApplication>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

VSTO:一旦从Visual Studio中进行调试,如何将其重新添加回VSTO加载项

VSTO Excel加载项:从模态窗口窗体调用Excel Inputbox时,焦点移到Visual Studio

Visual Studio社区版本是否支持Visual Studio Tools for Office(VSTO)?加载项设计器未显示

如何在Visual Studio 2015中启用Web开发功能?

VSTO Office Word加载项开发概述

MS Visual Studio找不到Internet Explorer(开发Outlook Web加载项)

Visual Studio 2015:为Office 2010及更高版本创建针对.NET 3.5的VSTO项目

ILNumerics和Visual Studio Tools for Office(VSTO)

Outlook VSTO 加载项功能区未对某些用户显示

我是否需要开发MS Outlook VSTO加载项的多个版本?

使用Visual Studio 2015开发Windows Mobile 6.5.3

Visual Studio 连接到 MS Access

如何从MS Project VSTO加载项监听Project Open事件?

Qt Visual Studio 2015加载项编译问题

使用 Visual Studio 从 MS Access db 通过 C# 中的特定字段搜索数据

Visual Studio 2015更新3和SQL Server 2016“ Visual Studio CRC包未正确加载”

如何使用VSTO在MS Word中开发类似智能知识的单词建议弹出窗口

VSTO Microsoft Office Outlook 2013加载项不断禁用功能区

Outlook VSTO 加载项中可以有两个功能区吗?

手动安装我的单词加载项VSTO(功能区)?用C#构建

使用带有Access的Visual Studio 2012的Visual Basic!无法将图片网址加载到图片框中

我可以使用Visual Studio Community 2015进行TypeScript开发吗?

用于在Windows 7上部署使用Visual Studio 2015开发的C ++ exe的可再发行组件

如何在VS2015中使用Visual Studio开发服务器

在Visual Studio 2015社区上使用Lync 2013 SDK开发吗?

我可以使用 Windows 7 和 Visual Studio 2015 开发 UWP 程序吗?

Visual Studio 2015和Xamarin出现问题(Android开发)

部署Office 2016 VSTO加载项的最佳实践

禁用 MS Visual Studio 项目依赖项