2013-03-27 49 views
1

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

我使用下面的代碼:

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

這2003 - 2010年的Visio下工作正常,但在Visio 2013年拋出「找不到文件」異常。 如果我在第一行中將擴展名更改爲「vsdx」 - 它再次正常。但是我必須支持所有的Visio版本。

+0

我不認爲將擴展名更改爲.vsd將會改變文件格式。您需要讓Visio Control以正確的格式保存文檔,而不僅僅是使用不同的文件擴展名。 – 2013-03-27 12:51:02

+0

是的,那是我的問題 - 怎麼做?我的代碼是爲舊版本編寫的,所以它的工作原理。作爲一個例子,我展示了vsdx現在是正確的格式。 – JleruOHeP 2013-03-27 12:55:45

回答

1

Visio API中存在已知的錯誤: Visio 2013的Visio控件無法另存爲VSD。它會顯示各種奇怪的行爲。 爲了解決這個問題時,Visio 2013下,你必須保存爲vsdx和使用Visio的一種無形的應用實例保存爲VSD:

  • 另存爲vsdx
  • 使vsdx副本
  • 使用隱形應用
  • 火了一個新的不可見的Visio應用對象
  • 打開使用不可見應用
  • 所述的vsdx的副本保存爲VSD(保存在步驟刪除vsdx文件(S)1/2)

爲了確定安裝的Visio版本: VisioVersion = Convert.ToInt32(document.Application.Version.Replace( 「 」)更換(「 0" , 」「)」。」。) 如果VisioVersion> = 15 - >的Visio 2013

另外請注意:保存爲VSD/vsdx,你將不得不使用: document.SaveEx insted的document.Save

要創建的實例無形的Visio應用程序,請參閱: Microsoft.Office.Interop.Visio.InvisibleApp