有沒有辦法從磁盤加載程序集並在其中執行代碼而不會將文件鎖定在磁盤上?我從來不明白爲什麼有必要鎖定文件,因爲代碼將被加載到RAM中並進行JIT編譯?加載並執行程序集中的代碼而不鎖定文件?
1
A
回答
2
這是可能的,你可以使用Assembly.Load(byte[])加載程序集也是如此。該程序集沒有「加載上下文」,您可以重複加載它。然而,管理這並不容易,你一定會發現。
3
你在找什麼叫做陰影複製。您必須創建新的AppDomain
並提供AppDomainSetup
實例,並將屬性ShadowCopyFiles
設置爲字符串true
。
此應用程序域將在加載它們之前將程序集複製到臨時位置。有關更多詳細信息,請參閱MSDN。
相關問題
- 1. 加載程序集鎖定文件
- 2. 在線程程序中使用鎖定機制等價於同步執行代碼而不是異步執行?
- 3. 在程序集上執行代碼加載
- 4. 未從mkbundle的可執行文件中加載程序集
- 5. 鎖定文件,而Imagick writeImage()執行
- 6. 如何獲得程序集版本而不鎖定文件?
- 7. 動態加載並執行預編譯代碼(燕麥文件)
- 8. Php文件試圖下載而不是執行代碼
- 9. 如何加載程序集到內存中,並執行它
- 10. WPF:從程序集(dll)中加載ImageSource不是正在執行的程序集
- 11. 代碼優先遷移:無法加載文件或程序集
- 12. 程序執行後解鎖文件
- 13. 使用代碼庫加載程序集
- 14. 無論實際代碼(執行)路徑如何加載引用的程序集?
- 15. [assembly:attribution ??執行代碼的自定義程序集屬性
- 16. 暫停代碼的執行,而不是應用程序
- 17. crontab打開文件並執行代碼
- 18. 下載文件而不是執行
- 19. jar文件不能加載本體,而在Eclipse中的Java代碼加載它
- 20. 從PHP加載的HTML文件執行PHP代碼
- 21. 將文件行加載到文件後文件打開並鎖定(PHP)
- 22. 鎖定文件並刪除它,而不先釋放鎖
- 23. 程序集加載時有沒有辦法運行代碼?
- 24. .Net:加載程序集時運行代碼
- 25. .NET--無法爲已加載的程序集加載文件或程序集
- 26. 執行動態加載的jQuery代碼
- 27. Python程序如何從文件加載並讀取特定行?
- 28. 動態加載jar並在其中執行任意代碼
- 29. 下載代碼並即時執行
- 30. Android的 - 如何執行代碼*後*一個進程中加載
這幾乎就是一個標準的OS功能來鎖定一個過程 – Pierreten 2010-05-22 00:24:59
@Pierreten使用基於文件的資源:在Unix中,你可以解除並更換共享庫,而他們都在使用。由於現有進程具有打開的文件句柄,因此在每個使用原始.so文件的進程終止之前,底層inode不會被收回。 – 2010-05-22 00:30:24