2008-11-25 47 views
3

這是我最近開始的一個奇怪的問題。我的團隊正在開發一個COTS應用程序,我們有幾個人在代碼中用手。 。爲什麼Visual Studio/CLR會產生一個「不好」的可執行文件?

「Windows無法訪問指定的 設備,路徑或文件您可能沒有 適當的權限:幾個星期前,我試圖調試時(和運行編譯EXE)收到一條錯誤消息到 訪問該項目。「

它結束了,我不得不重構這個代碼片段:

mcolSchedulesNeedingOverride(New Guid(lstrErrorParts(0))) &= vbNewLine & lstrErrorParts(2) 

在此:

Dim lguidKey As New Guid(lstrErrorParts(0)) 
Dim lstrErrorMsg As String = mcolSchedulesNeedingOverride(lguidKey) 
lstrErrorMsg &= vbNewLine & lstrErrorParts(2) 
mcolSchedulesNeedingOverride(lguidKey) = lstrErrorMsg 

這然後允許VS生成實際工作一個EXE。我真的不明白爲什麼,但它工作。我確實使用peverify實用程序來確定哪個程序集有問題。

現在我有大約25文件昨天更新後,在不同的代碼分支同樣的問題。這不是一件有趣的事情 - 所以我希望有人能夠提供一些見解,爲什麼這可能會發生 - 這可能會幫助我縮小看看。

peverify顯示所有我們組件是正確的,但隨地吐痰回來90+錯誤的System.Windows.Forms.dll的!

任何人有任何提示?

回答

2

你說你有幾個開發商對項目的工作,所以我不知道他們是否遇到此問題爲好。

如果它只發生在你的機器上比我不會去尋找代碼裏面的問題(你做的重構看起來與錯誤非常無關,所以我猜它之後工作的原因是另一個)但去你的環境中尋找問題。

也許一些損壞或不正確地與您安裝.NET Framework配置。你能看到哪個文件正在拋出錯誤信息嗎?爲您的機器上的任何裝配定義的任何策略?

+0

好了,與原來的問題 - 其他開發人員可以執行的方案,但會得到一個InvalidProgramException時的代碼爲調用。我根本無法執行應用程序。更改代碼解決了所有問題。 – Alarion 2008-11-25 17:00:27

0

我最常遇到的錯誤消息時,我拉一個二進制斷網/不可信的一些位置。 Windows將「有用」並阻止對其的訪問。

右鍵單擊該文件,並選擇屬性,然後「疏通」

很奇怪的是,誤差表現另作,所以這可能是風馬牛不相及;但建立在你的機器上將有Windows處理文件不同於下載的副本...不知道如何與重啓有關。

編輯:見this KB文章的「功能性」的更詳細說明我是指

相關問題