2008-12-27

Unable to load DLL 'sqlceme35.dll'

在下載 Visual Studio Team System 2008 Database Edition GDR 安裝在我的 Vista x64 上之後, 竟然沒辦法建立 Database 專案, 在新增專案的時候, 出現了如下圖的錯誤訊息!

image

搜尋了一下電腦並沒有發現這個檔案, 從名字看起來應該是和 SQL Compact Edition 有關, 可是又無從得知是哪一個套件含有這個檔案, 只好猜猜看了, 和 SQL CE 相關的套件有分 ServerTools, DesignTools, Runtime 三種, 而且又有區分 x86 和 x64 的平台, 而且還得要是 SP1 的版本才行, 實驗了一下後發現 Microsoft SQL Server Compact 3.5 SP1 是 Runtime 套件, Microsoft SQL Server Compact 3.5 SP1 Design Tools 當然就是 DesignTools 套件啦, 至於 ServerTools 我的電腦本並沒有安裝, 所以不管它!

經過一番折騰之後, 原來是我的 Runtime 安裝有問題, 移除後重新安裝就 OK 了!

反正就是 C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\sqlceme35.dll 檔案要存在就對了! 雖然覺得奇怪, 但現在也無法追究是什麼原因導致它不見的了!

keywords: sqlceme35, sql 2008

Safari 和 ASP.NET Menu 控制項

早在 ASP.NET 剛推出之時就一直強調能夠適應不同的用戶端產出對應的 Markup Code, 可是沒想到 Menu 控制項在 Safari 卻出了問題, 看了一下產出的網頁原始碼, 發現產出的 HTML 不一樣, 當時的第一個直覺反應是想到 ASP.NET CSS Friendly Control Adapter 專案, 應該和它有關, 一定是套用到了不同的 ControlAdapter 才會產出不同的 HTML, 所以如果要解決這個的問題, 應該也可以採用和它相同的技巧才對!

找到 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers 資料夾底下的 mozilla.browser 檔案, 裡面明白的寫著

image

就因為那個 controlAdapter 導致 Safari 在產出 Menu 的 HTML 時不如預期, 解決的方法也很簡單, 只要在網站下新增一個 App_Browser 的資夾, 在裡頭新增一個叫 safari.browser 的檔案, 然後在裡頭再一次的 override 掉原來的設定就行了!

<browsers>
    <browser refID="Safari1Plus">
        <capabilities>
            <capability name="xml" value="true" />
        </capabilities>
        <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" />
        </controlAdapters>
    </browser>
</browsers>

keywords: safari, controlAdapter, asp.net, Menu