2009-02-10 89 views
0

我開發了一些C#插件,沿着別人的應用程序部署在VS2008庫。他們使用ClickOnce進行部署,我試圖做一些不符合標準的事情。ClickOnce的DLL問題

在在安裝了應用程序,我的dll的一臺機器,我想手動替換我的一些DLL文件來測試一個補丁。

應用程序是在C:\ Documents和Settings \ testsystem \本地設置\ APPS \ 2.0 \ blahblahblah ...討厭的長路徑\

和我的DLL位於該路徑下的子目錄。

我測試了我的DLL文件,並將它們在子目錄但是從他送我的DLL的舊版本實際上是運行跟蹤輸出顯示。我讓測試人員驗證DLL是否在子目錄中,並且跟蹤日誌顯示正確的路徑,表明該應用程序正在從該位置運行,但跟蹤輸出不是來自我發送給他的DLL。

ClickOnce部署的東西是所有精靈的魔法我在這一點上。它似乎沒有覆蓋我的新DLL,但它肯定沒有運行我期望它運行的版本。有人有主意嗎?

謝謝, 馬特

回答

2

你確定你有正確的目錄嗎?一次點擊目錄結構有點複雜,DLL可以複製多次,它並不總是將DLL從你期望的位置拉出來,如果有人曾經把它們從GAC中拉出來

嘗試運行procexp,查找您的應用程序並檢查它所處理的句柄,這會告訴您正確的路徑,以便查找有問題的DLL。

+0

好點,羅伯特。這是一個令人沮喪的一天,我用我的大腦(和我經常使用的程序),而不是讓情況得到我最好的...呃,你知道的。謝謝。 – itsmatt 2009-02-11 02:06:24

0

會發布的更新與跟蹤DLL您的ClickOnce應用程序是出在這種情況下,你的問題?這將是clickonce中最簡單的方法。

+0

是的,不幸的是,這不是一個選項。 – itsmatt 2009-02-10 20:34:50

0

大約只需安裝在本地建立了一個版本(不clickonced)什麼。很顯然,如果你試圖解決權限錯誤這不會幫助你:(。

但沒有什麼是使你不能運行你的代碼在本地系統上一個exe。

0

隨着怪異,解決辦法帽子上,你可以:

  • 發佈下一個不同的名稱的應用程序,並有測試儀中安裝該版本。

它是應用程序的命名空間必須更改,但請更新ClickOnce應用程序名稱,否則您將陷入困惑的天堂。

  • 發佈應用程序以較低的版本號

我不得不說,我不是100%肯定這是否會工作,但如果你有一個較低的數字出版,您的其他客戶端不應該得到更新,但測試人員將不得不卸載然後安裝並獲取舊版本。但是要小心,在測試人員安裝完測試版後,你會想切換回真正的版本,然後測試人員不得不在每次啓動應用程序時安裝更新。

我肯定會用不同的名稱發佈,並且您將擁有適用於所有測試目的的版本。