VSTO详细打包过程
我們開發(fā)完成一個(gè)插件之后,當(dāng)然是打包發(fā)布給其他人安裝使用。
打包的作用是安裝必要的運(yùn)行環(huán)境和減少安裝的難度。VSTO自帶有個(gè)發(fā)布安裝的功能,位置如下圖:
該功能生成的安裝包有自動(dòng)檢查所需要的.Net框架和VSTO組件并下載和安裝。但其最后安裝的位置我們不能自己定義,會(huì)自動(dòng)把插件安裝到用戶的AppData目錄里面。
so~ 還是考慮其他方案。另外鑒于C#開發(fā)的東西基本是公開源碼的,需要對(duì)生成的dll文件進(jìn)行一定混淆加密處理。整理了一套流程。如下圖:
所需要的軟件可以到這里下載:http://pan.baidu.com/s/1i4OuVZn
下面開始詳細(xì)講解打包過(guò)程,圖片有點(diǎn)多。
?
1、用Release方式生成項(xiàng)目
?
C#生成項(xiàng)目程序有兩種方式:Debug和Release。Release方式體積更小、運(yùn)行更快。
按照上圖修改方式之后,再右鍵項(xiàng)目,生成:
生成完畢之后,可以在項(xiàng)目目錄中的,bin/Release中看到項(xiàng)目文件。我的項(xiàng)目文件如下,這些都是需要打包的。
?
2、DLL代碼混淆
很多人不愿意用VSTO做插件,除了入門麻煩(需要學(xué)習(xí)C#和Office相關(guān)的東西)之外,還有就是生成的項(xiàng)目文件基本是源碼。稍微反編譯一下,就能被看得清清楚楚。
這里有兩個(gè)dll文件,其中Microsoft.Office.Tools.Common.v4.0.Utilities.dll不需要處理。只需對(duì)我們自己代碼的dll文件處理即可。包含我的代碼那個(gè)文件是DTPT.dll。
?
混淆工具:Eziriz .NET Reactor。界面如下:
混淆之前,記得備份一下生成的dll。我一般混淆采用如下設(shè)置:
再點(diǎn)擊左邊的protect生成即可。
沒(méi)什么問(wèn)題,點(diǎn)擊Browse Folder按鈕,打開混淆生成的文件,復(fù)制替換項(xiàng)目文件。測(cè)試一下所有功能是否能夠正常使用!
因?yàn)橛袝r(shí)候,代碼混淆會(huì)導(dǎo)致某些代碼執(zhí)行不了。
勾選的混淆選項(xiàng)越多越容易導(dǎo)致混淆之后的文件不能使用。但勾選越少越容易被反編譯,真矛盾。我多次測(cè)試,發(fā)現(xiàn)勾選這3個(gè)是比較保險(xiǎn)的。有時(shí)不行,去掉Obfuscation。
若混淆后,有功能可能不能使用。則需要斟酌去掉某些混淆選項(xiàng),再重新生成測(cè)試,直到混淆文件可以完全使用。
?
3、創(chuàng)建打包項(xiàng)目
打包工具:Advanced Installer
新建一個(gè)打包工程,選擇如下:
New --> Add-Ins --> Office Add-In --> CreateProject
?
輸入你插件的名稱和組織(公司或網(wǎng)站),下一步。
?
這一步是要打包成什么程序,這個(gè)打包工具建議用msi格式,下一步。
?
設(shè)置打包這個(gè)工程保存的位置,以及打包發(fā)布的位置,下一步。
?
由于我們使用VSTO開發(fā)的,當(dāng)然選擇第1個(gè)。再繼續(xù)。
?
選擇你VSTO項(xiàng)目的解決方案sln文件。再下一步,將會(huì)自動(dòng)讀取項(xiàng)目的內(nèi)容。
?
選擇使用Release生成的項(xiàng)目文件,再下一步。
?
默認(rèn)勾選即可。若你還有什么文件是必備的沒(méi)有被勾選,自行勾選即可,再繼續(xù)下一步。
?
這一步很重要,盡管我開發(fā)用vs2013,我還是選擇都2010。2010兼容性比較好,可以兼容2007、2010、2013、2016等版本。后面還會(huì)根據(jù)這個(gè)找到所需的環(huán)境。設(shè)置完成之后,下一步。
?
如上圖設(shè)置,這些都是一些基本設(shè)置。填上自己項(xiàng)目相關(guān)信息即可,繼續(xù)下一步。
?
這一步也會(huì)是比較重要,選擇.net版本。若不知道你VSTO使用哪個(gè).net版本,可以帶VSTO項(xiàng)目,在“項(xiàng)目”-->“屬性”-->“應(yīng)用程序”中可以看到。
另外,最后一個(gè)不要勾選,后面有相關(guān)設(shè)置。
下一步,步驟還有不少。
?
先勾選,添加.net框架。若你也是使用4.0版本的,注意不要選擇4.0 Client Profile,一定要選擇4.0完整版本。
這里會(huì)自動(dòng)添加下載地址。當(dāng)然,你也可以改成你服務(wù)器的下載地址。
另外,這里建議勾上靜默安裝這些環(huán)境運(yùn)行包。先別點(diǎn)下一步,這一頁(yè)還沒(méi)設(shè)置完成。
?
勾選VSTO Runtime,這次默認(rèn)配置即可。必備環(huán)境這兩個(gè)即可,可以下一步了。
?
這個(gè)步驟是選擇安裝程序的語(yǔ)言,根據(jù)自己需求選擇即可,下一步。
?
這個(gè)是填寫服務(wù)條款,就是不同意不給安裝。自行根據(jù)需要填寫即可,下一步。
?
點(diǎn)“完成”,構(gòu)建打包項(xiàng)目。
?
相關(guān)設(shè)置都可以在這里找到,英語(yǔ)盲的話,自己查字典。下面再說(shuō)一些我個(gè)人認(rèn)為要注意的地方。
?
4、完善打包工程
一般我都會(huì)修改這個(gè)版本號(hào),和去掉Comments的描述。
?
看看Install Parameters,這里需要注意兩個(gè)地方。修改默認(rèn)安裝路徑和勾上Run as administrator(用管理員身份運(yùn)行)。
默認(rèn)安裝路徑我都是[ProgramFilesFolder]DTPT,其中[ProgramFilesFolder]是指C判斷的Program Files文件夾,DTPT是我的項(xiàng)目名稱。
?
打開Digital Signature,你是用中文版的,不知道這個(gè)是哪個(gè)?對(duì)照?qǐng)D標(biāo)和位置打開即可。
去掉Time stamp URL。
?
這一步很重要,打開Prerequisites。找到VSTO Runtime 4.0勾選(會(huì)彈窗提醒是否下載,點(diǎn)“否”),這個(gè)在Web Server分組上面。
再將其拖動(dòng)到Pre-install中,這個(gè)是指安裝時(shí)就檢查并處理。如下圖:
?
再選擇這個(gè)VSTO Runtime,打開Setup Files選卡,設(shè)置下面3個(gè)。
這個(gè)是為了設(shè)置靜默安裝,不過(guò)這里測(cè)試達(dá)不到預(yù)想的效果。這些參數(shù)是參考.net設(shè)置,可能這里參數(shù)不對(duì),若知道的話歡迎留言交流。
?
打開Registry,這個(gè)是寫注冊(cè)信息。其中[Manufacturer]項(xiàng)是無(wú)用的,刪掉。這里你也可以添加一些你所需的注冊(cè)信息。
?
最后,打開Media,此處是設(shè)置安裝包輸出的。這里我之前原本想只生成一個(gè)exe程序。但發(fā)現(xiàn)一個(gè)exe程序有問(wèn)題,還是生成一個(gè)msi和exe程序,改一下默認(rèn)命名。
?
5、發(fā)布生成安裝包
找到這個(gè)菜單中的Run,點(diǎn)擊生成安裝包。
我生成的安裝包如下:
可以在前面設(shè)置的打包發(fā)布位置找到。其中package.msi和setup.exe是安裝包,setup.exe是入口程序。
這里我會(huì)多一個(gè)en文件夾。因?yàn)槲疫x擇了兩種語(yǔ)言,外面這個(gè)是中文安裝包,里面這個(gè)是英文安裝包。
來(lái)源:http://yshblog.com/blog/97
總結(jié)
以上是生活随笔為你收集整理的VSTO详细打包过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Laravel Debugbar
- 下一篇: 计算机话筒技术指标,话筒指标与调音台电平