我有一個令人討厭的問題,那些曾經工作的東西停止工作。 看看這個代碼:ASP.NET - 如何阻止一個項目中的類/ dll被編譯到另一個項目中
Assembly _abc_assembly = Assembly.LoadFile(「c:\junk\abcabstract\bin\abc.dll」);
ABC.ContentAttribute attribute;
attribute = (ABC.ContentAttribute)_abc_assembly.CreateInstance("ABC.TextAttribute");
ContentAttribute在DLL中定義。 顯然,這應該工作。你應該能夠將自己的對象投射到自己身上。
但它會產生這個錯誤:
alt text http://www.yart.com.au/stackoverflow/compile1.png
這個bug在這裏http://www.yoda.arachsys.com/csharp/plugin.html討論這是我得到了連這個遠。從這篇文章中,我瞭解到ContentAttribute類不知何故以ABC.DLL 和網站項目的DLL結束。
該網站的項目,我有如下:
alt text http://www.yart.com.au/stackoverflow/compile2.png
現在ContentAttribute是不是在這個項目中,它是在DLL ABC.DLL。你可以看到,因爲我已經擴展了每個分支,並且ContentAttribute.cs文件不存在。
然而不知何故,它結束了在網站創建一個重複的參考DLL。 ContentAttribute在某種程度上以ABC.DLL和網站項目的DLL結尾。
誰能告訴我:
一)爲什麼ContentAttribute在兩個dll?我沒有想到在一個項目中強制將該代碼包含到項目DLL中的dll。
b)如何阻止它發生?
順便說一下,我絕對不想將網站項目更改爲網站應用程序,如果我可以避免它。
備註:
刪除臨時ASP.NET文件不起作用。只要我編譯我的網站項目,他們就會重新創建。
alt text http://www.yart.com.au/stackoverflow/compile3.png
我可以發誓這不是發生在一天前。這裏還沒有真正的架構,這是一個測試項目,我只需要它的工作! – Petras 2009-04-22 23:21:27
爲什麼需要使用完整路徑加載程序集?我添加了無需反射即可創建ContentAttribute實例的代碼。 – 2009-04-22 23:32:52