2010-09-08 79 views
0

將項目編譯爲使用(TargetFrameworkVersion)框架版本3.0,但看起來在最新的v4.0框架和HF中存在一些錯誤修復。由於我們希望應用程序即使在早期的框架中泄露一點,也可以使用,但我們不希望將目標設置爲4.0。您是否需要指定使用最新的框架版本?

當您瀏覽項目時,您可以看到它有一個運行時版本,但'特定版本'被標記爲false。

當我們運行應用程序時,我們可以告訴它實際使用的框架部件。它會默認爲3.0還是會使用最新的程序集。 如果它默認爲3.0,有些設置某種策略的方法可以使用新的程序集。

針對/定位4.0框架會在運行時使用它時產生任何不同的結果嗎?

+0

我完全不明白你在問什麼。希望它只是我:-) – 2010-09-08 18:35:51

回答

2

當您運行一個.NET應用程序時,它將默認爲它編譯的Framework版本。您可以通過在配置/啓動部分的應用程序配置文件中包含SupportedRuntime元素來指定它可以使用其他框架。但是,我不認爲應用程序可以指定它運行在比它所構建的框架晚的框架上。

如果您希望運行時嘗試使用v4.0,但是如果沒有安裝,您仍然可以在v3.5上運行,則應該在4.0中編譯應用程序,並在應用程序配置中包含SupportedRuntime元素版本(包括構建)的v3.5。

+0

使用SupportedRuntime以及http://stackoverflow.com/questions/2961600/app-config-supportedruntime我認爲這就是我所追求的。看起來你不需要在v4上編譯。與http://msdn.microsoft.com/en-us/library/9w519wzk.aspx和http://msdn.microsoft.com/en-us/library/w4atty68.aspx衝突的文檔 – 2010-09-08 19:09:30

1

當您不確定應用程序實際加載了哪些庫時,可以考慮在調試器中執行一些代碼以列出加載的程序集as in this reference或在應用程序運行時打開模塊調試窗口(VS 2010中的默認快捷方式:Ctrl-Alt-U)。

1

如果您針對3.0或3.5框架進行編譯,並且客戶端只有框架4,則應該嘗試使用該版本,除非您有特定的版本集。但是,您可能需要注意一些突破性更改。從我所知道的來說,沒有一種好的方法可以有選擇地混合框架版本,而且這看起來不是一個真正的好主意(tm)。不過,框架4現在非常普遍。在大多數情況下瞄準它可能是安全的。

+0

您應該在運行時在構建時針對相同的版本。您還可以在應用程序的安裝程序中將框架4列爲一個prereq,以引導框架4的安裝。 – 2010-09-08 18:40:46

相關問題