1. 程式人生 > >驗證C#程式脫離.net framework環境執行(飛信法)

驗證C#程式脫離.net framework環境執行(飛信法)

原理:


利用飛信從Salamander .Net Linker  中提取出來的.net 2.0 VM來支援程式執行.

驗證步驟:


1,在VM虛擬機器上沒有.net環境的純淨xp系統中測試執行用VS2008編寫的"打字遊戲"程式,報錯提示"應用程式正常初始化失敗...".
2,在飛信安裝目錄中有 VMDotNet 目錄。這個就是.Net框架虛擬環境需要的檔案,拷貝該檔案來到VM虛擬機器上。在資料夾裡面可以找到一個 FetionVM.exe的檔案 。這個是虛擬環境的loader。使用方法: FetionVM.exe 打字遊戲.exe的路徑,直接把.Net 程式作為命令列引數傳遞給 FetionVM.exe 就可以在這個虛擬環境中執行.net程式了。
3,測試結果:成功執行打字遊戲.

改進:


1,改loader FetionVM.exe的檔名為:MySoftLoader.exe
.再執行失敗,提示:Image can't be loaded.
2,直接雙擊圖示啟動程式.前面的方法是從命令列啟動.net程式的.將飛信安裝目錄下的Fetion.exe檔案拷貝到與VMDotNet同級的目錄下,Fetion.exe檔案就是應用程式的loader,不過這個Loader需要應用程式的可執行檔名必須為FetionFx.exe且處在同級目錄下.把打字遊戲放到同目錄下並改名為FetionFx.exe,然後雙擊Fetion.exe,打字遊戲啟動成功.


由於採用的是從飛信中提取出來的執行環境,所以對於.net 2.0 VM loader和程式執行檔名以及這些檔案的圖示有一定的限制,但應用程式的loader(即雙擊啟動程式的檔名)可以自己定義.

相關推薦

驗證C#程式脫離.net framework環境執行()

原理: 利用飛信從Salamander .Net Linker  中提取出來的.net 2.0 VM來支援程式執行. 驗證步驟: 1,在VM虛擬機器上沒有.net環境的純淨xp系統中測試執行用VS2008編寫的"打字遊戲"程式,報錯提示"應用程式正常

利用Salamander .Net Linker生成可脫離.net framework環境執行程式

這是對上一篇文章: 驗證C#程式脫離.net framework環境執行(飛信法)的拓展,在文章的末尾,提到了飛信法的幾點不便,於是有網友提出了自己編寫loader的方法來解決,這當然是一個好方法,但是loader需要用能生成native型別程式碼的語言工具來編寫,如VC++

讓.Net 程式脫離.net framework框架執行(ZZ)

Net框架目前逐步在普及了,仍然有很多人在尋找如何讓.NET程式脫離.NET框架的方法。現成的工具有 Xenocode 的postbuidle或者vas,還有 Salamander .NET Linker。 Net框架目前逐步在普及了,仍然有很多人在尋找如何讓.NET

使用Mono Runtime Bundle製作安裝包讓C#桌面應用程式脫離net framework

之前有一個C#版本和ios版本(支援下載學生名單,點名等更多功能,該版本未上app store)的教輔助手幫助學校老師提交成績到教務系統(浙大正方web版),一直打算用mfc寫一個vc++版本的可以方便的在未安裝net framework的電腦上使用,前幾天看到一篇文章再談為什麼要使用MONO  ,既然Uni

VS2010靜態編譯生成.exe可執行檔案,使c++程式脫離VS環境執行

VS2010靜態編譯生成的.exe可執行檔案,可以免安裝在其他電腦直接執行 靜態編譯:就是在編譯可執行檔案的時候,將可執行檔案需要呼叫的對應動態連結庫(.so)中的部分提取出來,連結到可執行檔案

visual studio 2017 installer 安裝包製作過程出現的問題---此安裝程式需要.NET Framework 版本 3.5,請安裝該版本,然後重新執行此安裝程式,可以從Web獲得

visual studio 2017 installer 安裝包製作過程出現的問題---此安裝程式需要.NET Framework 版本 3.5,請安裝該版本,然後重新執行此安裝程式,可以從Web獲得.NET Framework 。要立即做此事嗎?     &nbs

linux系統中使C程式脫離終端執行(後臺執行)

你是否遇到過這樣的情況:從終端軟體登入遠端的Linux主機,將一堆很大的檔案壓縮為一個.tar.gz檔案,連續壓縮了半個小時還沒有完成,這時,突然你斷網了,你登入不上遠端Linux主機了,那麼前面的半個小時就會前功盡棄,你非常氣憤…… 在Linux下,如果你要執行的shel

使OpenCV程式脫離本地OpenCV環境到其它電腦上執行

前言 一般在編寫影象處理軟體的時候會用到OpenCV,而且在OpenCV程式程式碼除錯完成之後就需要拿到別的電腦上去演示。由於演示用的電腦沒有與編寫程式碼機器一樣的OpenCV環境就會造成出現這樣的錯

C# 2.0 ,.NET Framework 2.0,Visual Studio 2005

ons var 設計器 als can valid del 窗體 PE C#2.0對應.net Frmework2.0,開始版本工具是Visual Studio2005 C#2.0主要添加了泛型、匿名方法,分部類型(類、結構、接口),可空類型,叠代器,屬性訪問控制器,方法組

關於CS0016: Could not write to output file ‘c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary AS

1、新增使用者"Network Service” 和 “IIS_IUSERS” 讀下面目錄的讀寫許可權 a) C:\Windows\Temp b) C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files  

C#學習筆記—.NET Framework(三)

CLI(Common Language  Infrastructure):   公共語言基礎結構 CIL(Common  Intermediate  Language):   公共中間語言 CLR(Common Language  Runtime):         公共

C++程式丟擲異常後執行順序

1 解構函式中是否可以丟擲異常   首先我們看一個常見的問題,解構函式中是否可以丟擲異常。答案是C++標準指明解構函式不能、也不應該丟擲異常!   C++異常處理模型是為C++語言量身設計的,更進一

Ubuntu14.04下C++程式編輯、編譯、執行入門篇

初次接觸Ubuntu,一腦子的糊塗,更別提如何在Ubuntu下編譯執行C++程式了,經過查資料,下面是自己在Ubuntu下寫的第一個C++程式,僅供初學者參考,也為自己的入門學習梳理下思路。 1、輸入組合鍵“Ctrl+Alt+t”調出終端; 2、需要在當前目錄下建立一個.c

禁止在 .NET Framework執行使用者程式碼。啟用 "clr enabled" 配置選項 解決辦法

在查詢分析其中執行如下程式碼: exec sp_configure 'show advanced options', '1'; go reconfigure; go exec sp_configure 'clr enabled', '1' go reconfigure; e

C#程式中CMD命令的執行

在C#的各種程式設計中,往往涉及到部分CMD命令的操作,尤其是對於部分程式的啟動與停止操作。 因此,對於常用的CMD操作相關的類,需要熟悉,現總結如下: 1,CMD操作時需要先啟動CMD程式,即通過啟動程式類Process來實現。 2,可以通過設定啟動程式類的Start

Win7下:編譯器錯誤資訊: CS0016: 未能寫入輸出檔案“c:/Windows/Microsoft.NET/Framework……”

錯誤如下: “/”應用程式中的伺服器錯誤。 編譯錯誤  說明: 在編譯向該請求提供服務所需資源的過程中出現錯誤。請檢查下列特定錯誤詳細資訊並適當地修改原始碼。  編譯器錯誤訊息: CS0016: 未能寫入輸出檔案“c:/Windows/Microsoft.NET/Frame

Ubuntu14.04下C++程式編輯、編譯、執行

1、輸入組合鍵“Ctrl+Alt+t”調出終端;  安裝vim:輸入 sudo apt-get install vim;  安裝gcc:輸入 sudo apt-get install g++。 2建立目錄,建立檔案,可通過命令ls檢視 3 建立完first.cpp

Linux環境c程式的編譯和執行

1 單個檔案的編譯和執行建立main.c檔案,內容如下: #include <stdio.h> #include <stdlib.h> int main(void){ printf("Hello world!\n"); return 0; };   編譯:

.Net Framework 4.x 程式到底執行在哪個 CLR 版本之上

轉帖:https://blog.csdn.net/WPwalter/article/details/78067293 另參考:https://www.cnblogs.com/worksguo/archive/2010/02/10/1666939.html 當我們編譯程式目標框架選為 .Net Framew

Linux環境下如何編譯和執行c程式

1 單個檔案的編譯和執行 建立main.c檔案,內容如下:  編譯: 執行: 2 多個檔案的編譯和執行建立sum.c檔案,內容如下: 建立main.c檔案,內容如下:   編譯:    生成可執行檔案,檔名為main: 執行程式: