ASP.NET Core 应用本身是一个 Web 框架,但是可以利用 Electron 等桌面应用框架将 ASP.NET Core 应用转化为桌面应用。以下是使用 Electron 将 ASP.NET Core 应用转化为桌面应用的示例:
npm install electron --save-dev
mkdir electron
const { app, BrowserWindow } = require('electron')
const path = require('path')
function createWindow () {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
// 加载 ASP.NET Core 应用
mainWindow.loadURL('http://localhost:5000')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electron', {
// 在 Electron 应用中打开链接
openExternalLink: (url) => ipcRenderer.send('open-external-link', url)
})
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
{
builder.AllowAnyHeader()
.AllowAnyMethod()
.SetIsOriginAllowed(_ => true)
.AllowCredentials();
});
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCors();
// ...
}