2015-10-07 87 views
1

我並不完全確定在構建C#應用程序時需要在客戶機上安裝.NET框架。什麼時候需要在客戶機上安裝.NET框架?

例如說有一個控制檯應用程序,例如:

using System; 
using System.IO; 
using System.Windows.Forms; 

namespace HelloWorld{ 
    class Hello { 
     static void Main() {      
      MessageBox.Show("Hello World."); 
     } 
    } 
} 

請問客戶端安裝.NET運行時間要求?這可以通過包含System.Windows.Forms.dll並將其合併到exe文件繞過?

謝謝

+2

是的,.NET框架始終是必需的。 System.Windows.Forms是一個.NET程序集,靜態鏈接到它(以某種方式)將無濟於事。但是,現在某些版本的.NET幾乎可以保證安裝。見:https://en.wikipedia.org/wiki/.NET_Framework#Versions – Blorgbeard

+0

是的,如果你知道你支持的操作系統版本,你通常可以定位一個版本的框架,並確保它可以工作(個人,我發現自己的目標是2-3.5),這是因爲我們根據觀衆的需要選擇了無框架安裝兼容性。也就是說,創建一個捆綁框架的安裝程序通常相當簡單,如果不是微不足道的話。 – Basic

+0

感謝您的答覆,所以如果我的目標是.NET 3.5,我應該與W7,8,8.1和10兼容。如果我正確理解公共語言基礎結構,那麼正確嗎? (假設我沒有做任何4+以上的依賴調用)。 – Amorphous

回答

2

必須安裝.NET Framework。即使將.NET框架的一部分嵌入到程序集中(例如使用Fody/Costura)或將它們包含爲DLL,.NET框架程序集也幾乎不會獨立運行。例如,System.Windows.Forms.dll會引用System.Windows.Forms.dll外部的.NET框架的某些部分。

幸運的是,.NET框架通常默認安裝在Windows上,所以爲了使生活變得簡單,您可以將目標鎖定在特定版本的Windows上。例如,我通常以4.0爲目標,並假定用戶正在運行Windows 7 SP1或更高版本。任何擁有最新Windows 7的人都應該運行SP1,因爲它是Windows Update。

下面是哪個.NET版本在哪個OS上出現的表格(source)。

Windows Version | Default .NET 
============================== 
XP    | None 
Vista   | 3.0 
7    | 3.5 
7 SP1   | 4.0 
8    | 4.5 
8.1    | 4.5.1 
10    | 4.6 

如果你需要知道如何改變目標框架,try this link。基本上,轉到項目屬性並更改「目標框架」。

相關問題