以vsd格式保存visio 2013图表

时间:2013-03-27 12:43:05

标签: c# visio visio2013

如何在c#visio控件中使用visio 2013以vsd格式保存diagramm?

我使用以下代码:

string filename = String.Format("{0}.vsd", Guid.NewGuid());
visioControl1.Document.SaveAs(temppath + filename); //Error!

这在Visio 2003-2010下工作正常,但在Visio 2013中会抛出“找不到文件”异常。 如果我在第一行中将扩展名更改为“vsdx” - 则可以再次使用。但我必须支持所有Visio版本。

1 个答案:

答案 0 :(得分:1)

Visio API中存在一个已知错误: Visio 2013的Visio控件无法保存为VSD。它会显示各种奇怪的行为。 为了解决这个问题,在Visio 2013下,你必须保存为vsdx并使用Visio的隐形应用程序实例保存为vsd:

  • 另存为vsdx
  • 制作vsdx的副本
  • 启动一个新的隐形Visio应用程序对象
  • 使用隐形应用
  • 打开vsdx的副本
  • 使用隐形应用
  • 另存为vsd
  • (删除在步骤1/2中保存的vsdx文件)

确定安装的Visio版本: VisioVersion = Convert.ToInt32(document.Application.Version.Replace(“。”,“,”)。Replace(“,0”,“”)) 如果VisioVersion> = 15 - > Visio 2013

请注意:要保存为vsd / vsdx,您必须使用: document.SaveEx insted of document.Save

要创建不可见Visio应用的实例,请参阅: Microsoft.Office.Interop.Visio.InvisibleApp