2016-10-03 57 views
2

我有一個用C#/ .NET編寫的小命令行應用程序。我需要它在.NET 3.5或更高版本安裝在操作系統上時運行。安裝4.x時提示安裝.NET 3.5的Windows

要做到這一點,我在app.config包含以下內容:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" /> 
    <supportedRuntime version="v2.0.50727" /> 
    </startup> 
</configuration> 

該項目框架設置好的來」的.NET Framework 3.5" 。

從我的理解,這兩個設置應該向後兼容,以便當某人沒有安裝3.5,但已安裝4.x,它將繼續工作。

還有什麼我不見了?從我的研究中,我認爲我已經把所有這些東西組合在一起,以實現這一點。

編輯:根據下面的問題,這裏也是參考和使用語句。有沒有第三方組件

以下是在項目引用:

System.Core 
System.Web.Extensions 
System.Windows.Forms 

和以下是我使用的語句:

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Runtime.InteropServices; 
using System.Text; 
using System.Security.Cryptography; 
using System.Web.Script.Serialization; 
using System.Reflection; 
using System.Diagnostics; 
+0

你有第三方組件? –

+0

我不會,我會添加引用和使用原來的問題 – Josh

+0

嘗試添加'sku',http://stackoverflow.com/questions/6739412/require-the-net-4-0-full-profile- with-supportedruntime –

回答

1

這是.NET框架的一個已知限制 - 從4開始,如果沒有安裝以前(在您的情況下,目標版本),它不允許應用程序在自己的運行時間內執行。

3.5是基於不同的CLR(2.0),因此有些compat問題。您需要將您的項目重新定位到4.0(或更高版本)以避免框架安裝提示問題。

推薦閱讀: CLR Inside Out - In-Process Side-by-Side