2013-08-03 33 views

回答

1

你需要使用你可以設置的命令行來運行一個成功的編譯(沒有辦法讓它在Debug上運行(如F11),並且你不能在每個配置的基礎上設置它。 ,有一個很好的解決辦法得到它只是做調試的事情配置等

基本行爲是:

打開解決方案打開項目的屬性去生成事件在生成後。事件命令行輸入Word的路徑(例如「C:\ Program Files(x86)\ Microsoft Office \ Office14 \ Winword」)(或者它位於%Path%,然後是Winword)並將路徑傳遞給你想要打開的文件作爲參數,這將打開Word d每個成功構建的文檔(您可以將觸發器設置爲全部構建,無論成功還是其他方式)

然而,我更喜歡做的是簡單地將其指向批處理文件,傳遞有關詳細信息構建事件作爲批處理文件的參數。然後,在批處理文件中,我運行的邏輯來決定是否應該啓動Word,打開文檔等

例如,您可以在批處理文件中它指向

$(ProjectDir)buildScript.bat "$(ConfigurationName)" 

然後有東西像

if %1=="Debug - Excel" "C:\Program Files (x86)\Microsoft Office\Office14\excel.exe" "%~dp0\testbook.xlsx" 

這將在項目目錄中運行一個名爲buildScript的批處理文件。第一個參數(在批處理文件中訪問的%1)將是配置。因此,您可以設置批處理文件以啓動Word並在文檔中將參數作爲參數傳遞「調試」,但不是「釋放」,從而避開了VS2012 Post-Build Event命令行中的限制。

編輯:

的Word開關的列表可以在http://support.microsoft.com/kb/210565

找到你需要指示Word做將取決於插件的類型,你在做什麼:

如果是一個標準的COM插件然後,只要DLL已註冊並且已經設置了註冊表項(或者在Word插件設置中選擇了它)來打開插件,那麼它應該在Word打開時打開。

但是,如果它是一個插件文檔,那麼該過程是不同的 - >嘗試使用commnd開關來指示Word打開特定的插件文檔。

我更熟悉Excel COM插件,所以你將不得不嘗試一個Word插件的特性。但基本原則是使用生成後事件生成線,並將正確的開關和參數結合到Winword中。

希望有所幫助。

+0

這是一個很好的答案,謝謝。但是,雖然它打開了一個文檔,但我正在使用一個加載項,並在正常窗口中打開該文檔,並仍然打開第二個空白文檔,其中包含我正在使用的所有控件。這是第二個窗口,看着我很有趣的插件控件。 – ForEachLoop

+0

@ForEachLoop我想我需要更多關於插件類型的細節。它是一個標準的COM插件嗎?看到我上面編輯的答案。 –

0

我試着按照Cor_Blimey的建議,但是隻有當某些東西發生變化時纔會打開指定的東西(還沒弄清楚)。另外,至少在VS2013實現上層解決方案時,斷點不起作用。
因此,我所做的是在每次啓動加載項時打開特定的調試/測試文件。
它工作良好,斷點功能正常,未加載空白工作簿,並在下一個調試會話中可用的工作表中進行更改。 爲了避免在釋放的加載項中打開文件,我把它放在#if DEBUG
有關該方法的更多信息是here,但它的使用方法與here中所述的一樣。

  private void ThisAddIn_Startup(object sender, System.EventArgs e) 
     { 
#if (DEBUG) 
      this.Application.Workbooks.Open("C:\\Users\\c563368\\Documents\\Visual Studio 2013\\Projects\\...\\debug.xls"); 
#endif 
     } 

但有一個缺點,只要你調試環境(視覺工作室)正在運行,辦公室總是會打開從debug文件夾中的加載項版本。 您可以通過運行辦公應用程序作爲外部程序來避免這種情況,如here所述。