我有兩個在C#.NET中開發的應用程序,它們針對Oracle 11g數據庫進行攻擊,現在客戶端計劃將數據庫升級到Oracle 12c。 其中一個應用程序是Windows服務,另一個是桌面應用程序。 此刻,我正在使用Oracle.DataAccess.dll
版本2.112.2.0,它工作正常。 升級後我的應用程序能否繼續正常工作,還是應該用另一個dll重新編譯我的應用程序? thx預先在Oracle數據庫升級之後,我是否必須重新編譯.NET應用程序
回答
只有您可以回答您的問題,因爲我們不可能知道您的應用程序在Oracle.DataAccess
中使用了哪些功能。在單獨的測試環境中執行升級,並執行嚴格的測試。
理論上,您不需要重新編譯。但只是分析你的代碼,你一定會知道的。因此,計劃並執行服務和桌面應用程序上的所有功能的迴歸測試以確保。
讓我們明白你的問題有點不同和理解正在改變它,但對於應用程序堆棧的Oracle數據庫被升級到12C,但對你的代碼的接觸點是ODP.Net (Oracle.DataAccess.dll)
,您使用的是某些version-2.112.2.0
,現在重新編譯取決於當前的ODP.Net版本是否適用於Oracle 12c,如果沒有,那麼您需要獲得新的兼容版本,這意味着重新編譯,但即使在這種情況下,您可以避免它,通過在GAC中添加一個更新的ODP.Net二進制文件,並在配置文件中使用Binding Redirect,這意味着即使在運行時使用舊版本進行編譯,它也會加載更新的版本,這意味着沒有運行時異常,這是由許多生產系統,當引入更新的相關二進制時,因爲int如果你想使用任何新的API,那麼你的界面很少會改變,那麼你肯定需要重新編譯和重新部署。 同時檢查鏈接 - Enabling automatic binding redirects manually
下面將設定的app.config:
<configuration>
<runtime>
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess"
publicKeyToken="-- ODP.Net Public Token --"
culture="en-us" />
<bindingRedirect oldVersion="2.112.2.0" newVersion="-- New Version --" />
</dependentAssembly>
</runtime>
</configuration>
取決於你可能使用了12版中不建議使用哪些功能。這是一個版本,像Oracle這樣的公司正在努力使新版本向後兼容。或者,新版本有可能會觸發代碼,但這不太可能。我希望測試和測試通過,而不必投入太多時間。
不,它應該以相同的方式工作。在極少數情況下,您可能會使用已從Oracle 12c中刪除的Oracle 11g中的函數。即使在這種情況下,您最有可能不得不修改您的實際代碼,而不是升級到新的ODP.NET(Oracle.DataAccess.dll)版本。
檢查此文件的刪除功能:Deprecated and Desupported Features for Oracle Database 12c
- 1. 當我升級第三方jar時,是否必須重新編譯我的應用程序?
- 2. 我是否必須用4.2編譯我的iPhone應用程序?
- 3. 在Oracle數據庫升級後驗證應用程序
- 4. 我是否必須預編譯asp.net mvc應用程序?
- 5. ApplicationSettingsBase.Upgrade()在使用.NET 4.0重新編譯之後不升級用戶設置
- 6. 在升級應用程序後,CoreData是否會保留數據?
- 7. 升級.NET應用程序數據層
- 8. 添加設備後,我是否必須重新歸檔adhoc應用程序?
- 9. 我必須重新編譯Boost庫,如果我修改`升壓\格式\ alt_sstream_impl.hpp`
- 10. 如何在應用程序升級過程中升級我的數據庫?
- 11. 當庫更新時,是否應該重新編譯程序
- 12. 我是否必須在我的應用程序和數據庫之間創建Web服務?
- 13. 我是否必須重新開始?
- 14. 當更新靜態庫時,主應用程序必須重新編譯或重新鏈接?
- 15. 我是否必須使用新證書更新我的應用程序?
- 16. 在ASP.NET 4.x MVC應用程序上,如果稍作更改,是否必須重新編譯所有內容?
- 17. 我是否必須創建一個新的數據庫?
- 18. 我是否必須爲每個新的rails應用程序手動創建一個新的本地數據庫?
- 19. 升級應用程序更新數據庫
- 20. 更改Java界面後,客戶端是否必須重新編譯?
- 21. 必須重新編譯運行x32 ABI應用程序的內容?
- 22. 是否必須在我的應用程序中進行配置?
- 23. 多線程時,我是否必須鎖定數據庫連接?
- 24. 我的Android應用程序名稱是否必須是com.myAppName
- 25. 用升級後的openssl重新編譯NGINX
- 26. 如果升級應用程序服務器或JVM,是否重新編譯了Java代碼?
- 27. 安裝或升級應用程序後重新啓動iPhone
- 28. ClickOnce應用程序升級後,沒有重新啓動完成
- 29. 如果我想編輯CSS,是否必須將WordPress升級到「專業版」?
- 30. 升級後的Python;我是否必須手動重新安裝所有網站包?
嗨,thx爲您的興趣。我只在數據庫的表中執行一些插入,而不是更多。 – Dinalan
然後做你的功課。查看版本之間的差異以及是否引入了會影響您的應用程序的重大更改。 –
他們不是作業,thx爲您提供幫助。 – Dinalan