2014-07-03 39 views
1

我有一個小型的C#工具,編譯爲Windows應用程序,其目標是包裝其他工具的執行。這個工具會經常執行,有時候會每秒執行100次,這是我無法改變的;與此相同,將與Framework 2一起工作。對於此工具最重要的是短時間的熱啓動。如何使用GAC和NGEN部署C#應用程序

使用Visual Studio 2013我使用強名稱密鑰在程序集上簽名。編譯「Release」並獲得「EXE」文件。接下來,我運行ngen/install app.exe

這就是我從這裏和那裏的一百萬個帖子所能理解的。 現在我需要將這個app.exe移動到我的12臺服務器上,並且我不知道是否應該在每臺機器上安裝ngen install,或者還應該將我的DEV windows/assembly文件夾結構複製到服務器窗口/程序集(當然,我的應用程序僅部件)。

我在一臺服務器上安裝了ngen install,但沒有看到創建的程序集,因此需要更高級的磁頭幫助。

謝謝 Pawel。

更新:我再次檢查,我發現在x64組裝。那麼是否真的足夠運行ngen?

RECAP:我將exe複製到服務器上,執行ngen install,檢查該程序集是否已創建。我運行機器啓動exe 500項 - 他們都在1分24秒內完成(從互斥體日誌)。我重複測試,得到了完全相同的結果:1.24接下來,我做了ngen卸載並檢查該程序集是否被刪除,它是。我運行相同的測試,結果是1.26(lol)。考慮到它的穩定性和執行時間對我來說是完全令人滿意的,我想我會放棄並停止使用GAC/NGEN的研究。但是,對這個場景以及我原來的問題的任何評論都很感激。

+0

開始一個過程每秒100次......我不認爲ngen會幫助很多。我建議重新設計。考慮單個實例(服務可能)正在旋轉。 –

+0

當然,我會重新設計,但它是從舊的和生鏽的系統運行集成的唯一方法。我不指望ngen幫助很多;如果它可以做一點,那就足夠了。 –

+0

大多數生鏽的舊系統都可以創建/寫入文件。有它這樣做。用一個程序監視文件/文件夾。 –

回答

2

您應該將應用程序需要運行的所有程序集部署到新機器上。那麼如果你願意,你可以選擇NGEN。像WiX這樣的安裝程序可以爲你做這兩件事。請參閱here

相關問題