the server tag 'CR:CrystalReportViewer' is ambiguous. Please modify the associated registration that is causing ambiguity and pick a new tag prefix.
- ประเด็นมีอยู่ว่า เขียนโปรเจคด้วย vs2005 แล้วไปเปิดบน vs2008 ซึ่งอยู่บน windows 7 rc
- เกิดปํญหาเกี่ยวกับ crystal report viewer อันที่เป็น component ตัวหนึ่งอ่ะนะ
- ดูเหมือน จะมี library crystal report ของ 2 version แล้วระบบเลยงง น่าจะใช่นะ
- วิธีแก้ให้เรา remove reference Crystal report version เดิมที่เป็นของ vs2005 ออกก่อน
- โดยเราสามารถ remove ได้โดยคลิกขวาที่ web project เราแล้วก็เลือก Property Pages ที่ References ก็จัดการ remove และ add libray ของ crystal report ที่เป็นเวอร์ชั่นใหม่
- เสร็จแล้วก็ Ok ซะหน่อย จากนั้นคิดว่า ใน web.config น่าจะมีการเพิ่ม tag assembly ของ crystal - report เวอร์ชั่นนี้เข้าไปนะ น่าจะนะไม่แน่ใจ ส่วนนี้ถ้าเทียบกับ application ก็ประมาณเพิ่ม dll ให้โปรเจคไว้ using อีกทีประมาณนั้น
- ถ้าใน web.config มี assembly crystal report เวอร์ชั่นเก่า เราก็ลบ tag เลยน่าจะได้เหมือนกัน
- สิ่งที่ต้องทำต่อไปคือ build โปรเจคเราดูขึ้น error อยู่หรือป่าว ถ้าขึ้นให้คลิกที่ error เปิดไฟล์ที่มีปัญหาส่วนมากที่เป็นจะเป็นไฟล์ aspx ที่มีการใช้ component crystal report viewer อ่ะนะ view แบบ source
- เราจะเห็น มีการเรียกใช้ assembly เวอร์ชั่นเดิมในที่นี้เป็น 10.2... ซึ่งเราจะไม่ใช้แหละ เราจะใช้ 10.5... แทน เราก็ comment หรือ ลบ register tag เวอร์ชั่นเดิมออก ใส่เวอร์ชั่นใหม่เข้าไปแทน
- เราสามารถ ลบ และ เพิ่ม crystal report viewer ตัวใหม่ได้โดยใช้ชื่อเดิมนั่นแหละ จะทำให้มีการ register assembly เวอร์ชั่นใหม่ให้เรา แต่ถ้ามี register เวอร์ชั่นเก่าก็ลบมันออกได้เลย
- ทำการลบ tag register ที่เป็นเวอร์ชั่นเดิมทุกไฟล์แล้วลอง build ใหม่ดูน่าจะผ่านไม่มี error แหละ
ลองมั่วก่อนหน้านี้
- เคยลองเข้าไปที่ C:\windows\assembly\GAC_MSIL\CrystalDecisions.Web แล้วทำการลบ assembly ที่เวอร์ชั่นต่ำกว่า ให้เหลือแต่เวอร์ชั่นใหม่ ซึ่งมันไม่ได้เกี่ยวอาไรกันเลยเพราะว่ายังไวก็ต้องไปแก้ crystal report viewer ที่ไฟล์ aspx ที่มีปัญหาให้ register เวอร์ชั่นใหม่เหมือนเดิม
สรุป
- แก้ที่ web.config หรือ remove และ add reference ผ่าน property page
- หลังจากนั้นก็ตามไปแก้ไฟล์ aspx ที่ register ของ crystal report viewer ให้ register เวอร์ชั่นที่เราตั้งใน web.config
ทิป
- register ของเว็บน่าจะคล้ายกับ using ของฝั่ง application นะคิดว่า ซึ่งใน code behind ก็ใช้ using
- ส่วนใน web.config ที่มี add assembly น่าจะประมาณ add reference ของฝั่ง app นั่นแหละ
- อีกเรื่องคือ ถ้าเว็บเรายังไม่มีไฟล์ web.config เราสามารถเพิ่มได้โดยการ add reference ที่ Bin directory เราก็จะได้ web.config โดยอัตโนมัติเลยหว่า
อ้างอิง
ใช้ .NET 3.5 อยู่แต่ server ใช้ .NET 2.0
ReplyDeleteจะแก้งานอย่างไรดีจาก crystal report viewer 10.5.3700
เป็น crystal report viewer 10.2.3600
ลองเปลี่ยนเองแล้วไม่ได้เลย
ออกตัวก่อน ผมก็มั่วไปตามประสา อย่าไปเชื่ออะไรใน blog มากครับ
ReplyDeleteTry
บน server ท่าน @กรรกรคอมพิวเตอร์ มีตัว runtime ของ crystal report veiwer 10.5 หรือยังครับ ผมว่าไม่ต้องเปลี่ยน ค่าอะไรตามโพสนี้ก็ได้ แต่ให้เราลองติดตั้งตัว runtime ของ 10.5 ตามโพสนี้ดูก่อนนะครับเผื่อช่วยได้
http://juuier.blogspot.com/2008/07/c-library-crystal-report.html
ไม่แน่ใจว่าจะช่วยได้หรือป่าวนะครับ สู้ๆ ครับ โชคดี
แก้ปัญหาได้หรือไม่ได้ยังไง ช่วยแบ่งปันความรู้ ด้วยก็จะขอบพระคุณอย่างมากเลยครับ