透過「新增專案」→「安裝與部署」建立部署專案,主要類型:
| 專案類型 | 輸出 | 適用場景 |
|---|---|---|
| CAB 專案 | .cab 壓縮檔 | 網頁下載部署 |
| 部署精靈 | .msi + 安裝程式 | 同時產生安裝與部署檔 |
| 合併模組 | .msm | 共用元件庫部署 |
| Web 安裝精靈 | Web 安裝程式 | 部署到 IIS 虛擬目錄 |
| 安裝精靈 | .msi | Windows 桌面應用程式(最常用) |
Setup.msi。.msi 安裝,檔案會複製到 Program Files。注意:.NET Framework 必須預裝於目標機器;早期版本部署專案相容性有限,現代專案建議使用 MSIX、Installer Projects 或第三方工具。
using System.Net;
IPHostEntry entry = Dns.GetHostEntry("www.example.com");
foreach (IPAddress ip in entry.AddressList)
{
Console.WriteLine($"IP: {ip}");
}
// 取得本機主機名與 IP
string hostName = Dns.GetHostName();
IPHostEntry local = Dns.GetHostEntry(hostName);
foreach (IPAddress ip in local.AddressList)
Console.WriteLine($"Local IP: {ip}");
.NET Core/.NET 5+ 建議用 Dns.GetHostEntryAsync 非同步版本。
MessageBox.Show("無效檔案", "開啟檔案結果",
MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
using System;
using System.Runtime.InteropServices;
class CallApi
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int MessageBox(IntPtr hWnd, string text, string caption, int type);
static int Main()
{
return MessageBox(IntPtr.Zero, "Hello World!", "Caption", 0);
}
}
關鍵點:CharSet.Auto 自動對應 Unicode/ANSI 版本;控制代碼用 IntPtr;簽章需與非受控定義完全一致。