2011-03-30 14 views
5

我有兩個項目:.net 4.0 控制檯應用程序和Asp.Net 4.0 網站(他們是在相同的解決方案)。現在我想將控制檯應用程序(它的.exe)包含在Web應用程序中,因爲我需要在用戶單擊某個按鈕時在服務器上運行它。如何在Asp.Net網站中包含另一個項目控制檯應用程序的exe文件?

現在我想以一種方式包含它,每當我重新編譯解決方案時,控制檯應用程序都會更新,因此它保持最新狀態。

因此... 我該如何將我的.exe加入到我的網絡應用程序中?

Ps。引用不起作用: enter image description here

+0

我已經使用一個後期製作事件更新了我的答案,該後期作品用於處理.exe文件及其相關文件。 – 2011-03-30 16:08:18

回答

6

你試過只是將其作爲一個「項目引用」到網站項目?右鍵單擊網站項目,選擇「添加引用...」並切換到「項目」選項卡。

這裏的一個快速測試表明,通過這樣做,當我構建解決方案時,控制檯應用程序項目(.exe)的輸出被複制到網站的/ bin文件夾中。

然後,您應該可以使用標準部署機制來確保將其與其他庫同時複製到服務器。


抱歉,你是對的,這不符合一個網站項目的工作,只能用網絡Applciation

在這種情況下,您必須在控制檯應用程序上使用「後期製作」事件才能將其複製到網站的文件夾中。

右鍵單擊解決方案資源管理器中的控制檯應用程序項目,然後選擇「屬性」或打開項目中的文件時,使用「項目」菜單。

那麼「生成事件」選項卡,在「生成後事件命令行」更新的東西,如:

xcopy "$(TargetDir)$(TargetFileName)" "c:\users\[UserName]\Documents\Visual Studio 2010\Websites\[ProjectName]\bin\" /D /S /I /Y 

如果你想包括PDB和配置文件,以及事遂所願的以下將更好:

xcopy "$(TargetDir)$(TargetName).*" "c:\users\[UserName]\Documents\Visual Studio 2010\Websites\[ProjectName]\bin\" /D /S /I /Y 
+1

不,這不起作用,因爲它聲明'項目必須構建到'dll'擴展才能被引用。' – 2011-03-30 15:26:54

+0

@ Kees - 啊,對不起,對,是網站的歡樂而不是「Web應用程序」。 – 2011-03-30 15:42:44

+0

驚人的...完美的作品! – 2011-03-31 08:26:19

0

如果你使用exe選項,而不是使用瀏覽選項卡。

+0

您可能想要將Debug和Release構建的輸出目錄更改爲在此情況下使用通用目錄,這將使很難知道您是否有調試或發佈版本,否則您將被鎖定使用您首先瀏覽過的版本 - 它不會注意到您已經完成了版本構建。 – 2011-03-30 15:59:09

1

Output Type

您試圖引用項目,請確保您更改輸出類型類庫。這應該解決它。

相關問題