2010-08-09 58 views
1

我是新來的.net,並有這個問題:我想爲使用AVI包裝描述here應用程序的安裝程序。該庫取決於avifil32.dll,因爲我在源代碼中發現它包含製作一個依賴於avifil32.dll的.net應用程序的安裝程序?

[DllImport("avifil32.dll", PreserveSig=true)]

我已經在visual studio 2008中創建了安裝項目,安裝程序在某些機器上工作正常。但是,有一臺機器無法正常工作,並且在與.avi導出有關的部分完全中斷,所以我認爲原因與此外部依賴關係有關。 如何讓安裝程序在目標機器上缺少這個(或通常任何)外部dll?

回答

1

感謝TooFat的建議。它幫助我意識到,我以前猜測關於丟失avifil32.dll是錯誤的。

我的問題的實際原因是我使用aviwrapper庫將位圖導出到avi和mpeg(我稍微修改了庫以便能夠在常規和xvid編解碼器之間切換)。它在我的臺式電腦和筆記本電腦上工作,因爲那裏我已經安裝了xvid編解碼器,但是在乾淨的Windows XP虛擬機上它不工作(xvid編解碼器丟失)。 我通過查看日誌文件意識到這一點。實際發生的事情是,我的方法先試圖導出爲.mpg,然後在avi compress中收到異常(由於xvid)。之後,它會嘗試導出到.avi,但是此前的嘗試搞砸了某些東西,導出到.avi會在文件打開時引發異常(兩個導出都使用相同的臨時文件名,這就是爲什麼它在文件打開時拋出異常的原因)。

當我註釋掉.mpg導出一切正常,我沒有必須包括上述dll。

再次感謝您的回覆。

1

你可以在安裝項目中右鍵單擊主輸出,然後右鍵單擊應用程序文件夾,選擇添加程序集並瀏覽到你的dll?

如果您然後右鍵單擊程序集,您可能需要設置註冊設置以在安裝時註冊該dll。

以下是可能有所幫助的article

+0

我無法將其作爲參考添加它說它不是一個有效的assemply或COM DLL,但我可以在安裝項目中添加。我會盡力回覆 – draganstankovic 2010-08-09 15:01:11

相關問題