飛信虛擬機

做完了一個圖片處理軟件,突然想到上次上網看到C#程序脫離.NET FRAMEWORK運行的文章,于是決定自己動手試一下。

  之前看到有用別的方法來實現的,但我還是選擇了現在比較流行的軟件飛信中帶的VMDotNet,也就是所謂的.NET FRAMEWORK虛擬機吧。相信有很多人也已經看過相關文章了,但是對于新手我還是再提一下,在你的飛信的安裝目錄下有一個VMDotNet文件夾,這個就是我們要用的最主要的內容了,先把它COPY出來吧!

  下面先來簡單說明一下VMDotNet文件夾吧,在這個文件夾之下有一個v2.0.50727文件夾,很明顯是.NET FRAMEWORK的版本號啦,進入這個文件夾,里面有一個FetionVM.exe的可執行文件(飛信的圖標),這個便是我們要用到的虛擬機文件了。其它文件我們不用考慮。這個程序可以帶入一個參數,即要在此虛擬環境下運行的程序的路徑。形如FetionVM.exe C:/1.exe,也可以使用相對路徑:FetionVM.exe 1.exe,當然這樣要求兩者在同一目錄下啦。這里順便要再說一下VMDotNet.log這個文件,這里記錄了在調用FetionVM.exe時的錯誤信息,主要是路徑不對,找不到對應的程序。在了解了這個文件夾之后,我們可以動手開始做啦!

  把這個文件夾復制到你的項目的DEBUG目錄下,我的已有項目名為PicProcessor,生成的可執行文件為,當然你也可以視情況而定了,如果放別的地方就應該注意一下路徑就好了。

  在這里我們需要再新建一個C#應用程序項目,我把它命名為PicStart,把FORM1.CS刪除,或者直接新建一個控制臺程序,在Program.cs中寫入以下代碼:

?


??  using?System;
  using?System.Collections.Generic;
  using?System.Windows.Forms;
  namespace?PicStart
  {
  static?class?Program
  {
  ///
  
  ///應用程序的主入口點。
  ///
  
  [STAThread]
  static
  voidMain()
  {
  //下面是調用外部程序的代碼
  System.Diagnostics.ProcessStartInfo?Info?=?new
  System.Diagnostics.ProcessStartInfo();
  Info.FileName?=?"VMDotNet//v2.0.50727//FetionVM.exe";?//這里是你要調用到的外部程序
  Info.Arguments?=?"PicProcessor.exe";?//調用外部程序的參數,這里是圖片處理項目的可執行文件,注意不是現在這個項目的可執行文件
  System.Diagnostics.Process?Proc;
  try
  {
  //
  //啟動外部程序
  //
  Proc?=?System.Diagnostics.Process.Start(Info);
  }
  catch?(System.ComponentModel.Win32Exception?e)
  {
  Console.WriteLine("系統找不到指定的程序文件。/r{0}",?e);
  return;
  }
  }
  }
  }

  在做完了這個項目以后我們生成此項目,這個時候我們就可以開始制作程序的安裝文件了。

  以前我們利用VS2005做安裝包的時候可以選擇把.NET FRAMEWORK集成進去,但現在我們不用了,請大家把相應的選項全部去掉

  我們把PicProcessor和PicStart項目都添加進新建的安裝和部署項目Setup中來,把程序啟動的快捷方式全部設為PicStart.exe就可以了,具體的操作方法在上面的鏈接里有。然后開始生成安裝包,生成的安裝包如果選擇大小優先的話,VMDotNet會占用大概10Mb左右的空間,然后加上你程序的大小就是這個安裝文件的大小了,比以前20多MB的.Net Framework小多了,而且安裝速度也要快的多,這樣程序在沒有.Net Framework的機器上也能運行了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388890.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388890.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388890.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

django的contenttype表

https://blog.csdn.net/aaronthon/article/details/81714496 這篇文章已經非常詳細了,供自己以后忘了...回看...... 總結: 當一張表和多個表FK關聯,并且多個FK中只能選擇其中一個或其中n個時,可以利用contenttype,固定用三個字段…

視頻播放問題和提高性能方案

1.Five symptoms of poor video performance 1.1 視頻加載緩慢 ?Perceived Wait Time Time to first frame (TTFF): ? 播放開始所需的adaptive bitrate(ABR)流媒體段的數量。(我們稍后將對此進行更詳細的討論。) ? 視頻請求發送到視頻加載之間的時間(即接收到足夠的數據…

rabbitmq 不同的消費者消費同一個隊列_RabbitMQ 消費端限流、TTL、死信隊列

消費端限流1. 為什么要對消費端限流假設一個場景,首先,我們 Rabbitmq 服務器積壓了有上萬條未處理的消息,我們隨便打開一個消費者客戶端,會出現這樣情況: 巨量的消息瞬間全部推送過來,但是我們單個客戶端無法同時處理這…

動量策略 python_在Python中使用動量通道進行交易

動量策略 pythonMost traders use Bollinger Bands. However, price is not normally distributed. That’s why only 42% of prices will close within one standard deviation. Please go ahead and read this article. However, I have some good news.大多數交易者使用布林…

css3 變換、過渡效果、動畫

1 CSS3 選擇器 1.1 基本選擇器 1.2 層級 空格 > .itemli ~ .item~p 1.3 屬性選擇器 [attr] [attrvalue] [attr^value] [attr$value] [attr*value] [][][] 1.4 偽類選擇器 :link :visited :hover :active :focus :first-child .list li:first-child :last-chi…

webservice 啟用代理服務器

您會發現你寫完了一個webservice在調用的時候發現怎也沒辦法調用,一個簡單的webservice怎么不能使用,一肚子的怨恨,哈哈您可能沒有為webservice設置代理。 下面就給您寫個調用的用例和大家分享下。其實很簡單,但是你沒有想到的時…

mysql常用的存儲引擎_Mysql存儲引擎

什么是存儲引擎?關系數據庫表是用于存儲和組織信息的數據結構,可以將表理解為由行和列組成的表格,類似于Excel的電子表格的形式。有的表簡單,有的表復雜,有的表根本不用來存儲任何長期的數據,有的表讀取時非…

android studio設計模式和文本模式切換

轉載于:https://www.cnblogs.com/judes/p/9437104.html

高斯模糊為什么叫高斯濾波_為什么高斯是所有發行之王?

高斯模糊為什么叫高斯濾波高斯分布及其主要特征: (Gaussian Distribution and its key characteristics:) Gaussian distribution is a continuous probability distribution with symmetrical sides around its center. 高斯分布是連續概率分布,其中心周…

C# webbrowser 代理

百度,google加自己理解后,將所得方法總結一下: 方法1:修改注冊表Software//Microsoft//Windows//CurrentVersion//Internet Settings下 ProxyEnable和ProxyServer。這種方法適用于局域網用戶,撥號用戶無效。 1p…

C MySQL讀寫分離連接串_Mysql讀寫分離

一 什么是讀寫分離MySQL Proxy最強大的一項功能是實現“讀寫分離(Read/Write Splitting)”。基本的原理是讓主數據庫處理事務性查詢,而從數據庫處理SELECT查詢。數據庫復制被用來把事務性查詢導致的變更同步到集群中的從數據庫。當然,主服務器也可以提供…

golang 編寫的在線redis 內存分析工具 rma4go

redis 內存分析工具 rma4go redis是一個很有名的內存型數據庫,這里不做詳細介紹。而rma4go (redis memory analyzer for golang) 是一個redis的內存分析工具,這個工具的主要作用是針對運行時期的redis進行內存的分析,統計redis中key的分布情…

從Jupyter Notebook到腳本

16 Aug: My second article: From Scripts To Prediction API8月16日:我的第二篇文章: 從腳本到預測API As advanced beginners, we know quite a lot: EDA, ML concepts, model architectures etc…… We can write a big Jupyter Notebook, click “Re…

【EasyNetQ】- 使用Future Publish調度事件

許多業務流程要求在將來某個日期安排事件。例如,在與客戶進行初次銷售聯系后,我們可能希望在將來的某個時間安排跟進電話。EasyNetQ可以通過其Future Publish功能幫助您實現此功能。例如,這里我們使用FuturePublish擴展方法來安排未來一個月的…

Java這些多線程基礎知識你會嗎?

0、并發和并行、進程核線程、多進程和多線程的區別: (這里的時間和時刻上的概念同物理上的一樣) 并發:在一段時間內多個任務同時執行,或者說是在一段很短的時間內可以執行多條程序指令,微觀上看起來好像是可…

MySQL set names 命令_mysql set names 命令和 mysql 字符編碼問題

先看下面的執行結果:(rootlocalhost)[(none)]mysql>show variables like character%;---------------------------------------------------------------------------------------| Variable_name | Value |---------------------------------------------------…

設置Proxy Server和SQL Server實現數據庫安全

首先,我們需要了解一下SQL Server在WinSock上定義協議的步驟: 1. 在”啟動”菜單上,指向”程序/Microsoft Proxy Server”,然后點擊”Microsoft Management Console”。 2. 展開”Internet Information Service”,再展開運行Proxy…

Python django解決跨域請求的問題

解決方案 1.安裝django-cors-headers pip3 install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS [...corsheaders,...] MIDDLEWARE_CLASSES (...corsheaders.middleware.CorsMiddleware,django.middleware.common.CommonMiddleware, # 注意順序...…

加勒比海兔_加勒比海海洋物種趨勢

加勒比海兔Ok, here’s a million dollar question: is the Caribbean really dying? Or, more specifically, are marine species found on Caribbean reefs becoming less abundant?好吧,這是一個百萬美元的問題:加勒比海真的死了嗎? 或者…

mysql 查出相差年數_MySQL計算兩個日期相差的天數、月數、年數

MySQL自帶的日期函數TIMESTAMPDIFF計算兩個日期相差的秒數、分鐘數、小時數、天數、周數、季度數、月數、年數,當前日期增加或者減少一天、一周等等。SELECT TIMESTAMPDIFF(類型,開始時間,結束時間)相差的秒數:SELECT TIMESTAMPDIFF(SECOND,1993-03-23 0…