2011年4月20日 星期三

Studio Style

覺得自己的Visual Studio風格太死板一般了嗎?

趕快到 Studio Style 來選取你所喜愛的風格並換上去,換Color scheme就像換衣服一樣容易!

目前我所安裝的有兩個Scheme: son-of-obsidian、fluent

第一個scheme偏向深色顏色比較暗沉一點,而第二個也是深色但是顏色會偏亮一點,整體感覺會比較舒適。

fluent:



son-of-obsidian:



替換的方法也很簡單,從
工具→選項→環境→匯入匯出設定→
勾選「使用團隊設定檔案」→瀏覽所下載的scheme檔→Finish

2011年4月18日 星期一

在Visual Studio中建置兩份相同的組件

會興起這樣的念頭是因為我最近的工作中因為負責的子功能多達十項,每一次重新建置組件檔更新到專案中都要複製十次,實在十分繁瑣也因此起了個:「若能把所有專案建置的組件檔都集中在一處然後全部一起複製,接著貼上一個指定的資料夾中這樣就省事多了!」

上網找MSDN的說明找到這個:http://msdn.microsoft.com/zh-tw/library/42x5kfw4.aspx
這個MSDN上面的連結主要是說明建置命令的聚集的意含是什麼....對於客製化自己的建置指令非常有用處。

依照MSDN的說明那我的需求要如何達成呢?很容易!在建置後事件命令對話方塊中輸入:
copy "$(TargetDir)*.*" "$(SolutionDir)Libary.DLLPool\"
這段指令的意思就是 複製 TargetDir 中的所有檔案 放置到"方案的目錄中的Libary.DLLPool\"中(注意!這個路徑的最後面會加上一個反斜線)

這樣的話我的組件檔就會在Libary.DLLPool中也有相同的一份了!



Step1.於專案中按下右鍵選擇屬性

Step2.按下在建置後事件頁籤中的"建置後事件命令列"的建置後進行編輯按鈕



Step3.按下聚集按鈕來針對自己的需求進行插入與編輯(ex. copy "$(TargetDir)*.dll" "$(SolutionDir)Libary.DLLPool\" )


Step4.編輯完成按下重新建置,建置完成就會多一個組件副本在指定的資料夾中



===========================2012-02-15 新增================================
範例:
/* 判斷目前建置的平台為Debug或是Release模式來區分組件複製的位置。這邊要特別注意 batch 的寫法;要把判斷都寫完然後在用 goto 指令跳到實際執行的指令位置,執行完成後要用另外一個 goto 跳出函式之外。
*/

if $(ConfigurationName)==DeBug goto debug
if $(ConfigurationName)==Release goto release
:debug
copy $(TargetPath) $(SolutionDir)DLLPool\
goto finish
:release
copy $(TargetPath) $(SolutionDir)DLLPool_Release\
goto finish
:finish

2011年2月21日 星期一

在.NET3.5的環境中使用TPL!

微軟目前最新釋出的.NET4.0環境中已經把大勢所趨的平行計算給納入標準的Lib中了,所以我們可以直接在.NET4.0的環境中直接使Parallel類別中的方法,體驗到平行計算帶來的好處,不過.NET3.5的環境就沒有直接內入Lib中...好在微軟有提供額外的Extension供使用者下載...http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx
下載之後是一個msi檔,click install之後預設的路徑為:C:\Program Files (x86)\Microsoft Cloud Programmability\Reactive Extensions\v1.0.2838.0\Net35
底下有個System.Threading.dll把這個東西放入方案中的參考並在cs檔中using System.Threading;這個namespace就可以如同在.NET 4.0中使用TPL一樣,免去自己分配工作給Thread的麻煩。

2010年10月12日 星期二

IEnumerable介面問題---Linq相關


這是一個當我在把Linq實際應用在案子時所遇到的問題,錯誤訊息如下:
The non-generic type 'System.Collections.IEnumerable' cannot be used with type arguments

當我的Compile跟我抱怨的時候,我壓根不曉得這到底出了什麼樣的問題...
在使用Linq時我知道一定要引用System.Linq和System.Collections這兩命名空間
出問題的程式碼如下:
IEnumerable TURL = from c in root.Elements("TargetURL") select c;

其實問題就出在命名空間引用錯誤...使用Linq時除了System.Linq之外,另一個一定要引用的命名空間其實是System.Collections.Gereric,而這個命名空間就是Linq的核心。
Linq實質上就是引用了IEnumerable型別物件方法,對資料進行搜尋與維護。

而IEnumerable其實是IEnumerable介面的泛型版本,之所以說是因為很剛好的System.Collections也有IEnumerable介面...只是他是處理非泛型的集合。

MSDN是這樣說得公開能逐一查看非泛型集合內容一次的列舉值。


回到我的程式,就是因為引用的命名空間錯誤,所以才造成我Compile出現錯誤,其實這個錯誤可以用google查得到,另外一位苦主

下次在使用到Linq的時候要多注意命名空間不要引用錯誤。

2010年9月30日 星期四

解決DEB package安裝失敗後package移除不能

因為getdeb-repository deb package無法從網路上抓下金鑰導致安裝只能進行到一半,也無法移除getdeb導致每次更新完系統都會自動去完成這個不可能完成的安裝讓我很痛苦。終於在受不了的情況下去找得solution,以下就是我找出的solution。

當使用 apt-get remove package-name 或是 dpkg -r package-name 都移除不了時,就只好手動來一除了。

1. 找出 package 相關安裝檔案
dpkg -L package-name .... 列出的都移除

2. 將索引文件中的 package 相關訊息都移除
sudo gedit /var/lib/dpkg/status ... 找到package-name的部份全刪除

3. 重建索引
sudo apt-get update

以上大致上就可以解決這個問題...在不然就是安裝不會有問題的版本把訊息蓋過去....這是沒有辦法的辦法...