我们正在应用程序中使用一个嵌入的Visio绘图控件作为一个自动可视化工具来表示系统继承。代码隐藏使用Visio互操作创建和布局所有形状。带有嵌入Visio文档的"designer“部分是通过使用(ActiveX) Visio绘图控件的自定义控件在WindowsFormsHost控件中完成的。
这种方法多年来一直行之有效,到目前为止。我们首先在in 2008/ Visio 2007中实现,然后迁移到VS2010,然后迁移到Visio 2010。一旦我们转移到we 2010/O 2010,我们增加了另一个针对x64的构建。
为此,我必须重新构建ActiveX控件。因为VS designer不支持Visio绘图控件的64位版本,所以不能简单地创建一个WindowsFormsHost并将Visio绘图控件放到它上;WPF控件的构建方式必须不同于32位版本。我不记得我是怎么做到的,但我认为基本上是这样的(可能是基于这):
我可以为32位版本构建,但这不适用于Visio 2013 64位版本。知道该怎么做吗?
发布于 2013-05-10 16:39:06
我终于找到了使用64位的解决方案。
神奇的是,我意识到我实际上并不需要XAML中的控件;因此,我最终所做的是从XAML页面中删除该控件,并从.xaml.cs代码的构造函数中实例化它。
因此:按照此链接中的说明构建自定义控件。我认为您必须使用64位版本的MSBuild.exe进行构建,就像你提供的链接中提到的那样。显然,只有在创建自定义控件时才需要这样做;我能够直接从VS构建解决方案(但在MSBuild构建时,它也正常工作,因此它也适用于自动构建)。
创建自定义控件
public和refactor:将其从axDrawingControl1重命名为AxVisioControl (最重要的是,不要忘记this.AxVisioControl.Name = "AxVisioControl";)VisioAxControl.dll和AxMicrosoft.Office.Interop.VisOcx.dll复制并引用到解决方案的某个文件夹中。
构建64位控件包括你的64位项目
/bin/Release/VisioAxControl.dll和/obj/Release/AxMicrosoft.Office.Interop.VisOcx.dll。<WindowsFormsHost name="MyWindowsFormsHost"></WindowsFormsHost>控件。https://stackoverflow.com/questions/16466613
复制相似问题