8

此問題在多次提問之前已被問到,但我無法獲得適用於我的典型解決方案。該proposed solution是把這個在「的app.config」文件:在.NET 4系統上運行.NET 3.5應用程序

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

但一個簡單的「Hello World」程序,我仍然得到錯誤:「無法找到一個版本的運行時間來運行這個應用。」。

對於某些背景,我使用的是Windows XP(通過Windows 7上的Windows Virtual PC),並且僅在XP上安裝了.NET 4.0運行時。

經過一番研究,我發現這個頁面: http://msdn.microsoft.com/en-us/library/ee941656.aspx#core

它提到「如果你的應用程序配置文件被命名爲應用name.config,其重命名爲應用name.exe.config例如,重命名。 MyApp.config到MyApp.exe.config「。

我試過了,認爲它可以解決問題,但我仍然得到「無法找到運行該版本的運行時運行此應用程序。」當我嘗試使用.NET 4.0在WinXP上運行.NET 3.5(客戶端配置文件或全部)應用程序時。

+1

這是衆所周知的工作。你實際上沒有將它重命名爲「MyApp.exe.config」,是嗎?將MyApp替換爲程序的名稱。 – 2012-03-31 21:36:37

+0

不,我將它從「app.config」更名爲「app.exe.config」,因爲它已經被命名爲「app.config」。我的程序名稱實際上是「testOnNet40only」。下面的Nathan似乎意味着用戶需要CLR 2.0-3.5,所以我不確定是否有任何工作。 – 2012-03-31 21:42:45

+1

這似乎是我在說什麼。 「app.exe.config」不好,你必須將它命名爲「testOnNet40Only.exe.config」。如果您在啓用主機進程的情況下使用調試器,那麼它需要命名爲「testOnNet40Only.vshost.exe.config」。 – 2012-03-31 21:50:45

回答

6

我破解了它。這可能聽起來很愚蠢,但事實證明,配置文件需要與用戶文件夾中的最終可執行文件一起使用。畢竟我的研究,這似乎沒有在任何地方澄清。我以爲它只是用於編譯目的纔在開發人員的文件夾中。

在VS編輯器文件列表中,它可以保持爲「app.config」。但是,編譯時,VS會自動創建「{ProgramName} .exe.config」(並將其放入bin/release文件夾中)。這是需要在最終用戶的文件夾以及可執行文件中執行的文件。

總而言之,可以在只安裝了.NET 4.0的系統上運行.NET 3.5應用程序。

相關問題