.NET項(xiàng)目開發(fā)的幾個(gè)非常重要的項(xiàng)目設(shè)置

在開發(fā).NET項(xiàng)目的時(shí)候,包括Winform項(xiàng)目和Web方面的項(xiàng)目,編譯和部署的時(shí)候,都需要考慮到是32位的X86方式,還是64位的方式,有時(shí)候還需要進(jìn)行調(diào)試,如果沒(méi)有合理設(shè)置好這些關(guān)系,還可能出現(xiàn)無(wú)法調(diào)試的問(wèn)題,本文基于我對(duì)Winform的開發(fā)總結(jié),介紹在.NET項(xiàng)目中對(duì)項(xiàng)目工程的設(shè)置操作。

1、設(shè)置編譯平臺(tái)的屬性

一般情況下,我們?yōu)榱送瑫r(shí)兼容32位和64位操作系統(tǒng),我們需要對(duì)設(shè)置好.NET項(xiàng)目的編譯屬性,一般設(shè)置為X86的方式。在VS的IDE里面,選擇生成-》配置管理器菜單。



如我的混合框架的項(xiàng)目設(shè)置如下所示,統(tǒng)一設(shè)置為了X86的兼容模式,請(qǐng)確保所有的項(xiàng)目均為X86的平臺(tái)設(shè)置。


2、WCF服務(wù)或者Web項(xiàng)目的設(shè)置

項(xiàng)目設(shè)置了以上的編譯平臺(tái)屬性后,一般情況下,WinForm程序或者類庫(kù)運(yùn)行是沒(méi)什么問(wèn)題了,但是如果是項(xiàng)目里面有WCF服務(wù)或者Web項(xiàng)目的,還需要注意一個(gè)設(shè)置,就是bin目錄的設(shè)置。默認(rèn)如果你修改了X86的平臺(tái)設(shè)置屬性后,WCF服務(wù)或者Web項(xiàng)目的輸出目錄也會(huì)發(fā)生變化,一般情況下,會(huì)是bin\x86\Debug


這個(gè)時(shí)候這個(gè)項(xiàng)目也是能夠順利編譯的,一切似乎都顯得正常的,但是我們?cè)谛薷牟糠执a,并進(jìn)行調(diào)試問(wèn)題的時(shí)候,可能會(huì)出現(xiàn)源代碼和原始版本不同的情況。

如果這時(shí)候,你根據(jù)這些去百度或者Google問(wèn)題,可能會(huì)給你找出很多不同的解決方案,但是可能都不太解決問(wèn)題,其實(shí)這個(gè)時(shí)候的問(wèn)題處理很簡(jiǎn)單,就是把輸出目錄重新設(shè)置為Bin就可以了,編譯調(diào)試源碼也一致了。

3、Winform啟動(dòng)項(xiàng)目的目標(biāo)框架問(wèn)題

在創(chuàng)建Winform啟動(dòng)項(xiàng)目的時(shí)候,默認(rèn)VS創(chuàng)建的Winform啟動(dòng)項(xiàng)目,它的目標(biāo)框架總是Client Profile(不知基于什么考慮),而一般情況,我們使用外部類庫(kù)比較少的時(shí)候,或者調(diào)用的.NET自身的類庫(kù)比少的情況下,問(wèn)題不會(huì)出現(xiàn),但是我們用這個(gè)項(xiàng)目開發(fā)了一段時(shí)間,逐漸加入一些模塊的時(shí)候,發(fā)現(xiàn)總是出現(xiàn)錯(cuò)誤,或者會(huì)缺少某些命名空間,這個(gè)時(shí)候,我們就應(yīng)該要檢查一下是否是你的啟動(dòng)項(xiàng)目的目標(biāo)框架問(wèn)題了,有可能是你的目標(biāo)框架為Client Profile的模式,如下所示。



如果我們把它修改為正常的.NET Framework框架方式,那么編譯就可能完全通過(guò)了。


4、.NET安裝包的設(shè)置

為了方便客戶部署使用,我們很多時(shí)候,可能把程序做成一個(gè)安裝包的形式,這種模式也需要考慮32位和64位的差異,一般我們可以選擇X86的平臺(tái)兼容模式,這種情況下,需要我們?cè)诎惭b項(xiàng)目的屬性里面設(shè)置X86的平臺(tái)屬性,如下所示。



這樣我們生成的安裝包,就能成功部署在32位和64位的系統(tǒng)上運(yùn)行了(他們都使用了32位的程序模式運(yùn)行)。程序安裝后,我們可以看到它的目錄也是在X86的程序目錄下的。



我們制作安裝包,一般情況下,我們可能需要先創(chuàng)建一個(gè)空白的項(xiàng)目,然后把相關(guān)的發(fā)布文件添加到項(xiàng)目中去,這里面其實(shí)也有一些講究,一般情況下,我們先把主程序添加進(jìn)去,其他部分會(huì)根據(jù)引用關(guān)系自動(dòng)添加了。如果你一股腦把編譯目錄里面的DLL都加入進(jìn)去,很多可能就會(huì)出現(xiàn)重復(fù)引用的情況。
因此避免以上的問(wèn)題,一般先添加主程序的EXE文件,然后等它的相關(guān)DLL都已經(jīng)自動(dòng)引入了,最后檢查缺少那些DLL和一些文檔文件,然后再依次補(bǔ)充一些就可以了。

安裝包除了上面情況需要注意外,還需要注意你的系統(tǒng)必備的設(shè)置



如果是.NET4的程序,我們一般勾選Microsoft .NET Framework4(X68和X64)這個(gè)必備組件(注意不是Client Profile),這樣我們可以檢測(cè)用戶的系統(tǒng)是否安裝了必備的環(huán)境,如果正常則可以成功運(yùn)行起來(lái)了。



以上就是我在開發(fā)項(xiàng)目中,經(jīng)常用到的一些設(shè)置屬性,雖然很多看似很普通,但是每次必須確保已經(jīng)成功設(shè)置好了,否則可能出現(xiàn)一些錯(cuò)誤莫名其妙,會(huì)兜很多彎路。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容