Dot-Net
DLL不復製到bin文件夾
我遇到了 Devart DLL 沒有被複製到我的 Web 應用程序的 bin 文件夾的問題。我有一個引用 projectA 的 Web 應用程序項目。項目A 引用項目B。Devart Dll 在 projectB 中使用,並且在建構期間不會被複製到 Web 應用程序項目 bin 文件夾中。ProjectB 還引用了 EL Unity dll,並且它們被正確複製。所有有問題的 Dll 在物理上都位於 projectB 中的文件夾中,這就是參考點。(我沒有指向 GAC 的參考資料)
正確複製的 dll 是 Microsoft.Practices.Unity、Microsoft.Practices.Unity.Configuration 和 Microsoft.Practices.ServiceLocation。
未正確複製的 dll 是 Devart.Data、Devart.Data.Oracle 和 Devart.Data.Oracle.Design。
這是每個dll的參考…
<Reference Include="Devart.Data, Version=5.0.124.0, Culture=neutral, PublicKeyToken=09af7300eec23701, processorArchitecture=MSIL"> <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Devart.Data.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference> <Reference Include="Devart.Data.Oracle, Version=5.70.170.0, Culture=neutral, PublicKeyToken=09af7300eec23701, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Devart.Data.Oracle.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Devart.Data.Oracle.Design, Version=5.70.170.0, Culture=neutral, PublicKeyToken=09af7300eec23701, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Devart.Data.Oracle.Design.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Microsoft.Practices.ServiceLocation.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference> <Reference Include="Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Microsoft.Practices.Unity.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference> <Reference Include="Microsoft.Practices.Unity.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Microsoft.Practices.Unity.Configuration.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference>還有誰有相同的問題嗎?我做錯了嗎?謝謝
編輯我打開了一個文件監視器並觀察了 Visual Studio 載入引用的位置,對於 Unity,它從我指定的位置獲取 dll。但是,對於 Devart dll,它正在 GAC 中查找!Devart dll會以某種方式導致這種情況嗎?
- 右鍵點擊引用的 dll 並檢查本地複制是否為真。
- 您也可以嘗試一次閱讀您的參考資料,當我將 VS2005 項目轉換為 VS2008 項目時,這為我解決了類似的問題。
我對外部參考也有類似的問題。問題是未複製未使用的庫。您是否使用 projectB 中的 Devart 庫?任何實例,繼承,任何東西,…??請嘗試以下操作:從 projectB 中的三個庫中實例化一些模擬類並重新編譯。它對我有用。我想得到正式的解釋。