Windows Live Writer Backup – 備份研究

十一月 30, 2008

使用 Windows Live Writer Backup (2.0.0.22) 備份 Windows Live Writer (14.0.5025.904) 時發生如下的錯誤,雖然最後顯示備份成功,但並沒有任何檔案產生。

錯誤訊息

System.Diagnostics.Debug.WriteLine(exception.ToString())
System.NullReferenceException: 並未將物件參考設定為物件的執行個體
   於 CabLib.Compress.OnUpdateStatus(kCurStatus pk_CurStatus, Void* p_Param)
   於 CCompressT<CCompress>.FCIUpdateStatus(UInt32 typeStatus, UInt32 cb1, UInt32 cb2, Void* pv)
   於 CCompressT<CCompress>.FlushCabinet(CCompressT<CCompress>* , Int32 b_CreateNewCabinetFile, Void* pParam)
   於 CCompressT<CCompress>.DestroyFCIContext(CCompressT<CCompress>* )
   於 CCompress.{dtor}(CCompress* )
   於 ___CxxCallUnwindDtor(IntPtr pDtor, Void* pThis)
   於 CabLib.Compress.CompressFileList(ArrayList i_FileList, String s_CabFile, Int32 s32_SplitSize)
   於 CabLib.Compress.CompressFolder(String s_Folder, String s_CabFile, String s_Filter, Int32 s32_SplitSize)
   於 LiveWriterBackup.BackupRestore.doCompression(String filen)

於是使用工具去研究 Windows Live Writer Backup 的錯誤所在及其備份原理。


Blog settings – 備份部落格設定

系統登錄:HKEY_CURRENT_USER\Software\Microsoft\Windows Live\Writer\Weblogs

替代方案:

  • 備份:regedit /e c:\writer.reg "HKEY_CURRENT_USER\Software\Microsoft\Windows Live\Writer\"
  • 還原:regedit /s c:\writer.reg

Draft blogs – 備份未發佈的草稿

目錄:Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\My Weblog Posts\Drafts";

替代方案:備份或還原資料夾內所有檔案。

Recent blogs – 備份發佈過的文章

目錄:Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\My Weblog Posts\Recent Posts";

替代方案:備份或還原資料夾內所有檔案。

Plugins – 備份插件

目錄:

  • Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Windows Live Writer\Plugins";
  • Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Windows Live\Writer\Plugins";

系統登錄:

  • {HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE}\Software\Windows Live Writer\PluginAssemblies
  • {HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE}\Software\Microsoft\Windows Live\Writer\PluginAssemblies

替代方案:備份或還原資料夾內所有檔案。若系統登錄有資料也要處理。

 

備註:

  • Environment.GetFolderPath(Environment.SpecialFolder.Personal)
    通常是 %USERPROFILE%\My Documents (C:\Documents and Settings\{帳號}\My Documents)
    或參考機碼:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders[@Personal]
  • Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
    通常是 %ProgramFiles% (C:\Program Files)
    或參考機碼:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders[@Programs]

 

延伸閱讀:

相關文章

359 views

 

Leave a Reply