簡體   English   中英

nUnit - 忽略DLL的GAC副本

[英]nUnit - ignore GAC copy of a DLL

我正在使用nUnit對單元進行單元測試。

程序集在我的項目輸出目錄(\\ bin \\ debug)中,並從此位置加載到nUnit(程序集>添加程序集)中。

但是,舊版本也在GAC中,nUnit正在選擇此版本。

我當然可以刪除舊版本並在構建時重新安裝到GAC,但這需要一些時間 - 任何方法強制nUnit(或更可能是.NET框架)從bin \\ debug目錄中獲取版本?

編輯

兩個版本的AssemblyVersion(以及強名稱)都是固定的 - 它只是根據KB 556041更改的文件版本- 如何使用匯編版本和匯編文件版本

您可以嘗試在.config文件中創建<bindingRedirect>以重定向到本地程序集,而不使用GAC中安裝的那個。

當您針對具有強名稱的程序集構建.NET Framework應用程序時,默認情況下,應用程序在運行時使用該版本的程序集,即使有新版本可用。 但是,您可以將應用程序配置為針對較新版本的程序集運行

...

 <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1" culture="neutral" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration> 

這對您來說也很有趣:

希望有所幫助!

在這種情況下我傾向於做的是在單元測試之前不簽署組件,直到我准備好部署它。 這是一個單步過程,您可以轉到項目屬性並清除簽署裝配設置。 重新編譯時,下次運行測試時,NUnit將從本地bin文件夾中提取它,因為無法將未簽名的程序集部署到GAC。 我發現即使你已經在GAC中有一個版本的程序集,如果你引用項目測試的程序集,它仍然會采用未簽名的版本。 完成測試后,重新打開設置並進行部署。

不太理想,因為你現在已經有了額外的步驟,但是盡可能接近我沒有做很多工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM