[原創*精華]一鍵釋出ASP.NET Web安裝程式,搞WebForm的童鞋看過來...
重要更新:鑑於很多小夥伴們說看不到圖,我這邊換了幾個瀏覽器看了下,都看得到的,估計是網速問題,請耐心等待,另外,為了更好的方便大家學習,特此提供原始碼以及一個word文件,word文件就是本文內容,包括圖片,下載連結在最底下,謝謝.
前言:最近公司有個Web要釋出,但是以前都是由實施到甲方去釋出,配置,這幾天有點閒,同事讓我搞一個一鍵釋出,就和安裝軟體那樣的程式,好讓實施直接配置一下資料庫就可以了,然後到網上搜了下,找到一些相關的教程,現在整理了一下,花了一個下午的時間來寫筆記,寫好了,首先奉獻給部落格園的小夥伴們,和大夥兒分享一下,好了,下面進入主題~~~
1,首先開啟VS2010,新建一個專案,如圖1-1所示:
圖1-1
2,然後再按照圖2-1所示操作,新增現有專案,現有專案就是您要釋出的Web的專案,這裡只需要新增Web的那一個專案即可,類庫那些可以不用新增;
圖2-1
3,新增完之後,如圖3-1所示
圖3-1
4,接著按照圖4-1所示操作,新增專案輸出:
圖4-1
5,如圖5-1所示,新增相應的專案輸出,專案選中您要釋出的專案,我這裡是Web,然後裡面選中:"本地化資源"和"內容檔案",然後確定新增.
圖5-1
6,接下來,我們轉到使用者介面,如圖6-1所示:
圖6-1
7,在啟動那裡右鍵→新增對話方塊,如圖7-1所示:
圖7-1
8,這次,我們依次新增許可協議(圖8-1),文字框(A)(圖8-2),有需要的情況,可以再新增一個客戶資訊,這個看個人所需,這裡就不再一一演示了.
圖8-1
圖8-2
9,然後我們先右鍵,把位置整理好來,如圖9-1所示:
圖9-1
10,現在我們來說說許可協議的方面,現在先新建一個word文件,然後在word文件裡面寫上一些字,這裡就簡單寫了以下幾個字:"
這個是一個許可協議,同意請按”下一步”,不同意請按”取消”.";
然後另存為:如圖10-1所示:
圖10-1
然後選擇格式為rtf的檔案儲存起來,如圖10-2所示:
圖10-2
11,現在回到我們的程式裡面,我們右鍵許可協議,選擇屬性,然後看到屬性框這裡,把剛剛我們編輯好的rtf檔案弄進來,具體操作如圖11-1,11-2,11-3所示:
圖11-1
圖11-2
圖11-3,
單擊"新增檔案",然後選中剛剛您編輯好的rtf檔案,確定即可,如圖11-4所示:
圖11-4;
12,現在我們來看看文字框的作用,首先給大家科普一下這個文字框的作用.大家在安裝軟體或者配置網站的時候,往往都會做一些資料庫配置的東西,因為不同的電腦,他的sql伺服器名就不一樣,有些有了例項名,那就不能都預設為localhost了,還有使用者名稱,密碼什麼的,每臺機器都不一樣,所以,這裡我們就要用到文字框來幫我們錄入這些將要安裝部署我們網站的一些資訊了.ok,下面,我們就來操作這個文字框了,如圖12-1所示,把該輸進去的輸好來,建議新手先按照我截圖的來輸,到後面自己熟練了再做修改,
圖12-1
13,完成12的操作的時候,接下來,我們回到上面,新增一個新建專案,如圖13-1所示:
圖13-1
然後我們新增一個安裝類,如圖13-2所示:
圖13-2
接下來,我們在新建好的類庫裡面,右鍵再新增一個新建項,如圖13-3,所示:
圖13-3
接下來,我們選擇新建項為一個"安裝程式類",如果找不到,可以在右上角的搜尋框哪裡輸入"安裝",搜尋出來的結果第一個就是了,如圖13-4所示:
圖13-4
新增完了以後,我們就切換到程式碼模式,看看這個類有啥東東,來,一起gogogo,如圖13-5所示:
圖13-5
我們發現,他的程式碼很簡潔,如圖13-6所示:
圖13-6
14,好嘞,做完這一步我們返回解決方案這邊來,右鍵專案,新增專案輸出,如圖14-1所示:
圖14-1
然後:專案選擇---安裝類,然後內容選擇主輸出,確定就好,如圖14-2所示:
圖14-2
15,接下來,我們就轉到自定義操作這邊來,如圖15-1所示:
圖15-1
然後右鍵新增自定義操作,如圖15-2所示:
圖15-2
然後雙擊進入"應用程式資料夾",如圖15-3所示:
圖15-3
然後選中"主輸出來自安裝類(活動)",點選確定即可,如圖15-4所示:
圖15-4
16,然後在去到這個的屬性,如圖所示,輸入以下內容到相應位置,內容為(紅色字型,黑色的雙引號不要,但是紅色的雙引號要):"/dbname=[DBNAME] /server=[SERVER] /user=[UNAME] /pwd=[PWD] /targetdir="[TARGETDIR]\"",如圖16-1所示:
圖16-1
這裡面就解釋以下,剛剛各位應該還有印象我們之前添加了一個文字框吧?還記得文字框的內容麼?嘿嘿,來,咱給你回憶一下,如圖16-2所示:
圖16-2
哈哈,想起來了吧,對了,這裡面就是把文字框的值弄過來滴...等下再告訴你怎麼用.好的,昨晚這一步了,我們要回到"安裝類"裡面來寫一寫程式碼了.(什麼!!!這都還要寫程式碼?!樓主,你這是要鬧哪樣~~~樓主回覆:小盆友,程式碼不多滴,放心吧,呵呵)
17,現在我們回到安裝類庫下面的Installer1.cs,不會進入的就雙擊那個檔案,然後點選切換到後臺程式碼即可,先把程式碼補全,再慢慢給大夥解釋哈,如圖17-1所示;
圖17-1
詳細程式碼:
/// <summary>
/// 重寫安裝方法
/// </summary>
/// <param name="stateSaver"></param>
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
string Server = Context.Parameters["server"].ToString();
string dbName = Context.Parameters["dbname"].ToString();
string userName = Context.Parameters["user"].ToString();
string userPass = Context.Parameters["pwd"].ToString();
string targetdir = Context.Parameters["targetdir"].ToString();
/*
* 設定webconfig連線字串
*/
string webconfigpath = Path.Combine(this.Context.Parameters["targetdir"].ToString(), "web.config");
//修改第一個資料庫連線
string webcofnigstring2 = File.ReadAllText(webconfigpath).Replace(@"server=JEFFREY9061\SQL2008;database=yd_esms;uid=sa;pwd=********", GetConnectionString2());
File.WriteAllText(webconfigpath, webcofnigstring2);
//修改第二個資料連線
string webcofnigstring = File.ReadAllText(webconfigpath).Replace(@"Data Source=JEFFREY9061\SQL2008;Initial Catalog=yd_esms;Persist Security Info=True;User ID=sa;Password=******", GetConnectionString());
File.WriteAllText(webconfigpath, webcofnigstring);
//這個是測試在安裝目錄下新增接收到的使用者填寫的資料庫資訊
File.WriteAllText(Path.Combine(targetdir, "log.txt"), Server + "/n/r" + dbName + "/n/r" + userName + "/n/r" + userPass);
}
/// <summary>
/// 執行sql語句
/// </summary>
/// <param name="connection"></param>
/// <param name="sql"></param>
void ExecuteSQL(SqlConnection connection, string sql)
{
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.ExecuteNonQuery();
}
/// <summary>
/// 獲取文字框輸入的資訊,來插入到登入連線字串
/// </summary>
/// <returns></returns>
private string GetConnectionString()
{
return @"Data Source=" + this.Context.Parameters["server"] + ";Initial Catalog=" + this.Context.Parameters["dbname"] + ";Persist Security Info=True;User ID=" + this.Context.Parameters["user"] + ";Password=" + this.Context.Parameters["pwd"] + "";
}
private string GetConnectionString2()
{
return @"server=" + this.Context.Parameters["server"] + ";database=" + this.Context.Parameters["dbname"] + ";uid=" + this.Context.Parameters["user"] + ";pwd=" + this.Context.Parameters["pwd"];
}
ok,現在我們來說說這個程式碼的意思:
第一個,方法,重寫安裝方法這個就一般都看得懂了,前面幾個string都是獲取文字框的值的,下面的就是獲去web.config檔案,然後修改裡面的資料庫連線字串的,因為我用到兩個連線字串,所以寫了兩個,如果只有一個的,那就寫一個即可,這個各取所需哈.
18,(奶奶的,還有?那麼長,老子不看了...)其實我想告訴你,結束啦,現在,我們只需要把專案從頭到尾(從上到下,先web,然後再安裝類,然後再"一鍵安裝抄表系統")生成一邊即可,生成完成後,我們就可以在專案右鍵安裝即可.如圖18-1所示:(什麼!!!沒有足夠的許可權不能執行?老兄,你可以右鍵,然後在windows開啟資料夾,右鍵以管理員模式執行即可,小兒科啦,相信你懂的.,如圖18-2所示)
圖18-1
圖18-2
19:(怎麼還有~~~,我的小宇宙要爆發啦...)小盆友們,別急,我下面給大家貼一貼圖,看看安裝過程而已,稍安勿躁哈...如圖19-1到19-8所示:
圖19-1
圖19-2
圖19-3(嘿嘿,這裡就是剛剛的許可協議咯)
圖19-4(這裡就是剛剛我們新增的文字框啦,知道用處了吧)
圖19-5(這裡面選擇好你的應用程式池喲.)
ps:此程式預設的安裝路徑是:C:\inetpub\wwwroot,然後訪問的時候是:localhost:/xxx/即可,如圖19-6和圖19-7
圖19-6
圖19-7
看到這裡,就完啦,如果覺得本文對您有所幫助,請點選右下角的"好文要頂"支援一下,謝謝;
OK,本次教程到此結束,還有其他的精彩之處,留給各位看官們自己發掘(提示:資料庫相關問題,也是可以的,例如,匯出一個sql檔案,然後通過這個程式讀取您匯出來的sql檔案,然後再用語句執行就ok了,等等都可以拓展開來),如果對本文章有所意見或者建議,可以發郵件到[email protected]或者支付回覆本帖子互相學習.謝謝,轉載請保留本欄位本文地址:http://www.cnblogs.com/nangong/p/Web.html.
原始碼和word文件下載地址:
相關推薦
[原創*精華]一鍵釋出ASP.NET Web安裝程式,搞WebForm的童鞋看過來...
重要更新:鑑於很多小夥伴們說看不到圖,我這邊換了幾個瀏覽器看了下,都看得到的,估計是網速問題,請耐心等待,另外,為了更好的方便大家學習,特此提供原始碼以及一個word文件,word文件就是本文內容,包括圖片,下載連結在最底下,謝謝. 前言:最近公司有個W
釋出ASP.NET Web API專案時外部網路載入不進去
今天將API專案釋出到Win2008R2的環境中去時,發現了幾個問題,首先是,系統報錯提示“Could not load file or assembly 'Microsoft.AI.Web' or one of its dependencies. 系統找不到指定的檔案。 ” 網上
使用VS2013釋出ASP.NET Web專案
一、建立網站專案1.1、新建專案點選檔案->新建->專案1.2、選擇ASP.NET Web窗體應用程式填寫專案名稱,點選確定1.3、修改Default頁面,新增測試資料二、釋出網站2.1選擇生成-釋出myShop2.2自定義釋出檔案2.3配置檔名稱2.4選擇釋出方
Asp.Net Web應用程式無法拖放控制元件
今天嘗試做個Web應用程式,居然無法把標準控制元件拖到設計頁面!百般嘗試,只有Html的控制元件可以拖過去 網上搜了很久,才在百度知道的非標準答案(百度知道的回答)中找到了正確答案:解決方案的路徑中有
ASP.NET Web應用程式與ASP.NET Web服務應用程式有什麼區別
ASP.NET Web應用程式就是一個網站,B/S架構,客戶通過瀏覽器獲取伺服器上執行的該應用程式上的業務功能。 ASP.NET Web服務應用程式是一個遠端服務,必須被其他網站引用才可以正常被使用者使用,相當於一個被遠端呼叫的方法,一般是隻提供資料,不提供修改。如我們在各
如何配置ASP.NET Web應用程式使之使用Azure SQL Database
1. 首先你需要新增一個程式包到你的ASP.NET專案中。右鍵點選你的ASP專案,選擇Add Library Package Reference: 注意:這裡的MigrateASPWebsiteAzure只是一個例子,請在Visual Studio中選擇你將要配置的ASP
vs2010裡面 新建網站裡面的 asp.net網站 和 新建專案裡面的 asp.net Web應用程式 的區別 (下)
地址:http://www.cnblogs.com/iceicebaby/archive/2012/02/21/2361686.html 二:下面是 通過 新建專案 來建立 ASP.NET web 應用程式 下面我們建立 資料庫DAL層 和 實體類
用ASP.NET Web API技術開發HTTP接口(一)
ble 身份驗證 刪除 發現 bapi try prot 好用 get 開發工具 Visual Studio 2013 SQL Server 2008 R2 準備工作 啟動Visual Studio 2013,新建一個ASP.NET Web應用程序,命名為SimpleAPI
asp.net web頁面匯出word的一種方式,自己記錄用
前臺:div內可新增內容<div id="divText" runat="server" style="text-align: center"> </div>後臺:利用Rende
ASP.NET WEB網站簡單入門(簡單Demo ->釋出)
簡單分幾個階段 一、簡單程式碼實現 1.新建工程 2.開啟設計器(檢視設計器),托出一個label ,寫上Hello 3.點選除錯,即可看到網頁效果 4.重新生成後,釋出到指定
【更新】Essential Studio for ASP.NET Web Forms 2018 v4釋出
下載Essential Studio for ASP.NET Web Forms最新版本 Essential Studio for ASP.NET介面控制元件包含了商業Web應用程式開發中所需的所有控制元件,如grids、charts、gauges、menus、calendars、editors
Asp.NET Web API 2系列(一):初識Web API及手動搭建基本框架
1.導言 隨著Web技術的發展,現在各種框架,前端的,後端的,數不勝數。全棧工程師的壓力越來越大。 PC端,pad端,移動端App(安卓/IOS)的發展,使得前後端一體的開發模式十分笨重。因此,前後端分離是web發展的趨勢,其中,RESTful API是目前前後端分離的最佳實踐,ASP
ASP.NET Web專案釋出選項:“允許更新此預編譯站點” 詳解
目錄 #使用visual studio 釋出web專案 #"允許更新此預編譯站點" 選項的意義 1、選中 “允許更新此預編譯站點” 2、不選中 “允許更新此預編譯站點” 3
ASP.NET web application中的redirect
services append 窗口 eve redirect 系統 permanent lac tran 在開發ASP.NET MVC web application過程中,開發上線了新系統後,需要把老系統的url redirect新系統下 其中在項目系統目錄下有一個文件
Asp.net Web Api 解決跨域問題
asp oss ros ner div exec space out color using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syst
Docker-Compose一鍵部署Ningx+.Net Core+Redis集群
ext 地址 error app應用 十分 鏡像 max blank 問題 在看該文章前,你需要對Docker有所了解。 1、創建WebApp應用程序 我使用的是.Net Core 1.0.1版本,創建一個MVC應用程序,並添加對Redis的引用。因為這些很基礎,也很簡單
[ASP.NET Web API]如何Host定義在獨立程序集中的Controller
eps 運行 icon tel conf clu XML dom tex 通過《 ASP.NET Web API的Controller是如何被創建的?》的介紹我們知道默認ASP.NET Web API在Self Host寄宿模式下用於解析程序集的AssembliesRes
How ASP.NET Web API 2.0 Works?[持續更新中…]
throws case rep 生命 indexof http face auto 攔截 一、概述 RESTful Web API [Web標準篇]RESTful Web API [設計篇] 在一個空ASP.NET Web項目上創建一個ASP.NET Web API 2.
ASP.NET Web Application中使用鏈接文件
快速 構建 remove linked link lsp rep 增加 是我 最近重構一個內部的平臺系統,作為一個平臺,其下有幾個子系統,每個子系統有自己的網站系統。而每個網站使用的是統一的風格,統一的驗證機制,反饋系統,等等。所以,為了避免幾個子系統中重復出現相同的資源或
[轉]ASP.NET web API 2 OData enhancements
{0} per yourself res demon services host iss ges 本文轉自:https://www.pluralsight.com/blog/tutorials/asp-net-web-api-2-odata-enhancements Al