我創建使用MVC 3的Web應用程序,它就像這個這個從MVC應用程序
控制器/動作遊戲應用程序就像是\首頁\遊戲
我想創建EXE要知道是否有可能將此MVC應用程序轉換爲EXE文件,因此,任何用戶都可以在他的PC上運行它。我知道我們可以爲Windows應用程序創建EXE文件,Web App有可能嗎?
我創建使用MVC 3的Web應用程序,它就像這個這個從MVC應用程序
控制器/動作遊戲應用程序就像是\首頁\遊戲
我想創建EXE要知道是否有可能將此MVC應用程序轉換爲EXE文件,因此,任何用戶都可以在他的PC上運行它。我知道我們可以爲Windows應用程序創建EXE文件,Web App有可能嗎?
不直接。
你可以做的是使用單XSP有一個簡單的嵌入式Web服務器,您可以放入一個.exe文件,然後將啓動一個端口XY一個Web服務器,並打開一個網絡瀏覽器與
http://localhost:xy/optional-virtual-directory/Home/Game
您還需要將webserver-assembly localcopycopy到您的Web應用程序的/ bin目錄中,以使其無需任何安裝即可正常工作。
您還需要對所有必需的ASP.NET MVC-3程序集進行localcopy(因爲它們最有可能不是默認安裝的)。
而且您需要添加1.0.0版以防萬一有人在本地安裝了MVC-4。
即便如此,它還需要在目標計算機上安裝.NET Framework 4.0(或至少3.5?)。
下面的鏈接到最新的穩定,XSP來源:
http://download.mono-project.com/sources/xsp/xsp-2.10.2.tar.bz2
可以包括壓縮的Web應用程序中嵌入的資源,並使用解壓庫將其解壓縮到一個可寫目錄中,您的設置您的網絡服務器的根目錄。
確保您的解壓縮庫確實正確解壓JavaScript文件,因爲Microsoft提供的windows-server windows-explorer-integrated-zip-handling實用程序沒有正確解壓縮它們(可能取決於服務器版本和安全設置/策略)。
static void Main()
{
int iPort = 8080; // If admin rights it requires, wrong it is ;)
iPort = 30080; // Damn ! I still no haz no admin rightz !
string strBasePath = @"D:\UserName\documents\visual studio 2010\Projects\EmbeddableWebServer\TestApplication";
string strCurrentDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(strCurrentDirectory);
//strBasePath = System.IO.Path.Combine(di.Parent.Parent.Parent.FullName, "TestApplication");
strBasePath = System.IO.Path.Combine(di.Parent.Parent.Parent.FullName, "TestMvcApplication");
//EmbeddableWebServer.cWebSource WebSource = new EmbeddableWebServer.cWebSource(System.Net.IPAddress.Any, iPort);
Mono.WebServer.XSPWebSource ws = new Mono.WebServer.XSPWebSource(System.Net.IPAddress.Any, iPort);
// EmbeddableWebServer.cServer Server = new EmbeddableWebServer.cServer(WebSource, strBasePath);
Mono.WebServer.ApplicationServer Server = new Mono.WebServer.ApplicationServer(ws, strBasePath);
Server.AddApplication("localhost", iPort, "/", strBasePath);
Server.Start(true);
System.Diagnostics.Process.Start("\"http://localhost:" + iPort.ToString() + "\"");
Console.WriteLine(" --- Server up and running. Press any key to quit --- ");
Console.ReadKey();
Server.Stop();
} // End Sub Main
我使用此代碼來解決丟失的區域設置處理。
using System;
using System.Collections.Generic;
using System.Text;
namespace System
{
public class Locale
{
// http://msdn.microsoft.com/en-us/library/441722ys(v=vs.80).aspx
// #pragma warning disable 414, 3021
public static string GetText(string message)
{
return message;
}
public static string GetText(string format, params object[] args)
{
return string.Format(format, args);
}
/*
public static object GetResource(string name)
{
return name;
}
*/
} // End Class Locale
} // End Namespace System
我會試試看...謝謝 –
@Anil:從我的項目中添加了簡單的示例代碼:)順便說一句,你還需要Mono.Posix和Mono的源代碼。安全性,你可能需要編輯它們一點。 –
如果你需要在客戶端機器上安裝Web服務器,**你做錯了**。就像一些主要品牌的通用遙控器一樣,通過Java客戶端編程到安裝在您的機器上的Java Web服務器,並花費兩分鐘在高端機器上啓動並佔用CPU和內存,所有這些都顯示一個嚮導四頁。不要這樣做。如果您想將其重新分配爲可執行文件,請在WinForms中重新創建遊戲。如果你想根據這個答案distrubite,它將是〜50 MB大。你不能只是**在某個地方主持**網站,並給人們的網址? – CodeCaster
您可以創建Windows8應用程序:) –
不,您不能將MVC應用程序轉換爲可執行文件。對於可執行文件,請使用WinForms或Console應用程序。 –
我會再做一遍。我認爲你完全錯了方向 –