April 1, 2013

NLog設定檔無法使用Intellisense的解決方式

Logging framework - NLog安裝與設定中介紹過NLog提供設定檔的結構描述檔以便支援Visual Studio的Intellisense功能,如此方便我們撰寫NLog設定。


然而在昨天卻出現了Intellisense無法使用的問題,在Error List視窗也出現了不少警告訊息。


看起來像是結構描述檔已經被重複定義了。

出現此問題很有可能是方案內有兩個以上的專案都安裝了NLog的結構描述檔所以造成Visual Studio把兩份以上相同的結構描述檔都cache住了。在我的例子中,我的方案檔的確有兩個web app專案分別都安裝了NLog.xsd,而且其中一個NLog.config的Intellisense可以運作而另一個卻不行。

解決這個問題有兩個方法。第一個方式是先開啟其中一個NLog.config設定檔,至XML-> Schema...找到兩個相同的NLog結構描述檔,將其中一個設定為Do not use this schema



設定完後Error List的警告訊息就會不見,而Intellisense的支援也恢復正常。然而這個方法在每次新加的專案中如果有使用到NLog.xsd的話就要記得去修改設定。

另一個一勞永逸的方式是將NLog.xsd放置到Visual Studio儲存結構描述檔的資料夾。以Visual Studio 2012為例,此資料夾是位於C:\Program Files (x86)\Microsoft Visual Studio 11.0\Xml\Schemas。接著,移除專案中的NLog.xsd,之後新增的專案若需要使用NLog不再需要放入NLog.xsd便可直接使用到Intellisense的支援了。

參考

No comments: