Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > จะย้าย Application และ DLL ที่พัฒนาขึ้นเองไปใช้กับเครื่องอื่นอย่างไรครับ



 

จะย้าย Application และ DLL ที่พัฒนาขึ้นเองไปใช้กับเครื่องอื่นอย่างไรครับ

 



Topic : 119178



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์




ขอความช่วยเหลือหน่อยครับ

ผมได้พัฒนา Web app ขึ้นมา และมีการเขียน DLL ขึ้นมาใช้งาน DLL ตัวนี้ต้องการให้หลาย ๆ App สามารถเรียกใช้ได้ โดย DLL มีการ compile ด้วยวิธี gacutil -i SomeAssembly.dll และ copy DLL นั้นไปใส่ไว้ที่ C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\ เพื่อให้เวลาที่พัฒนาโปรแกรมจะได้มองเห็น DLL ให้เลือก (ทั้งหมดทำบนเครื่อง Develop) หลังจาก Deploy แล้ว ผมก็เอาไฟล wsp ไปไว้บนเครื่อง UAT และ Production ส่วน DLL ก็ copy ไปไว้ที่ C:\Windows\Microsoft.NET\assembly\GAC_MSIL ก็สามารถทำงานได้ แต่ปัญหาคือ หลังจากที่มีการแก้ไข DLL ภายหลังและเอา DLL ไปวางใหม่ โปรแกรมจะไม่สามารถรันได้ โดยขึ้น error ตลอด ไม่ว่าจะเป็น public key error หรือ โปรแกรมไม่สามารถรันได้เลย

ถามว่า
1. วิธีการที่เราจะทำ DLL ขึ้นมาตัวนึงเพื่อเป็นตัวกลางให้กับหลาย ๆ application สามารถเรียกใช้ได้นั้น ควรจะทำอย่างไร
2. วิธีการที่จะเอา DLL จากเครื่องนึงไปไว้อีกเครื่องนึงควรจะทำแบบไหน อยากให้ถ้ามีการแก้ไข DLL เมื่อไหร่ ก็สามารถเอาไปวางได้เลย โดยไม่กระทบกับ App อื่นๆ

ขอบคุณครับ



Tag : .NET, Class Library, VS 2012 (.NET 4.x), C, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-10-01 14:28:47 By : hutvanos View : 2376 Reply : 6
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ปกติหลักการของการใช้งาน DLL ที่นิยมใช้คือหลังจากเขียนเสร็จให้ Complie เป็น DLL ส่วนจะเอาไปใช้ที่ไหนก็ใช้การ Add Reference เอาครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-01 14:36:18 By : mr.win
 


 

No. 2



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณคุณ TC Admin ครับ

แนวคิดของผมคือต้องการทำ DLL ตัวนึงขึ้นมาเป็น DLL ที่ทุกๆ Application สามารถเรียกใช้ได้โดยการ Add Reference เข้าไปใน Project ครับ

ปัญหาคือ พอผมมีการแก้ไข DLL และ compile ใหม่ application ที่เคยเรียกใช้ DLL ตัวนี้จะมี Error เกิดขึ้นทันที เลยอยากรู้ครับว่า จะต้องทำยังไงถึงไม่เกิดปัญหานี้ และถ้าเราจะเอา DLL ไปใส่เครื่อง Production ที่ไม่มี VS ให้ compile DLL จะต้องทำวิธีไหนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-01 14:50:02 By : hutvanos
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ปกติก็น่าจะ Copy แค่ DDL ไปวางใน Bin ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-02 09:27:20 By : mr.win
 


 

No. 4



โพสกระทู้ ( 821 )
บทความ ( 0 )



สถานะออฟไลน์


ของผมทำแบบนี้ครับ
ผิดถูกขออภัยน่ะครับ

ผมมี project ที่เป็นของ dll อยู่

และผมมี folder ที่ไว้เก็บไฟล์ dll อยู่อีกที่หนึ่ง
ทุกโปรแกรมผมจะเรียก dll จาก folder นี้ครับ

ใน project ผมเขียนไฟล์ bat เอาไว้
ทุกครั้งที่ compile ไฟล์ bat จะทำงานอัตโนมัติ
หน้าทีของไฟล์ bat คือ copy ตัว dll ไปเก็บไว้ที่ folder หลักของ dll

ปัญหาที่พบคือบางครั้งเมื่อผม compile dll ใหม่
project ที่เปิดค้างไว้อยู่จะมองไม่เห็น dll นั้น
ผมก็แค่รันไฟล์ bat ซ้ำอีกรอบก็จะกลับมาเป็นปกติครับ



ส่วนการกระจายให้กับเครื่องอื่น ผมทำง่ายๆครับ
ก็ copy dll ไปก้บโปรแกรมเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-02 09:42:43 By : fonfire
 


 

No. 5



โพสกระทู้ ( 821 )
บทความ ( 0 )



สถานะออฟไลน์


หน้าตั้งค่าไฟล์ bat ครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-02 09:45:35 By : fonfire
 


 

No. 6

Guest


ขอบคุณครับ คุณ FONFIRE
พอดีเวลาที่จะ Deploy ขึ้น Production ผมจะต้องทำเป็น wsp ไฟล์ครับ เลยทำให้ไม่สามารถทำแบบที่คุณแนะนำได้ ต้องขอโทษด้วยนะครับ ถ้าผมเขียนแบบงงๆ อธิบายไม่ชัดเจนครับ

******************************************************************************************************************************************

ผมพัฒนาโปรแกรม พร้อมด้วยการเขียน DLL ซึ่งมีแนวคิดที่จะทำเป็น FrameWork ขึ้นมา โดยให้ทุกโปรเจคมาเรียกใช้ class ที่ได้ทำเตรียมไว้ให้แล้ว โดยการ import Reference เข้าไป

ไฟล์ DLL เมื่อพัฒนาเสร็จแล้ว จะทำการ compile ด้วย vs command promt
- ildasm xxx.dll /out:xxx.il - ren xxx.dll xxx.orig - ilasm xxx.il /dll /key=keyPair.snk - gacutil -i xxx.dll


จากนั้นผมจะ copy dll นี้ไปวางที่ C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5
เพื่อที่เวลาที่เราต้องการ add reference จะมี dll ของเราเข้าไปอยู่ใน list ของ vs ให้ทันที

ในการพัฒนาโปรแกรมจะมี add dll เข้าไป และเรียกใช้งานคลาสในนั้น เมื่อพัฒนาเสร็จจะ deploy ออกมาเป็น wsp เพื่อให้ admin เอาไปโปรโมทบนเครื่อง Production

บน Production, Admin จะรัน bat เพื่อโปรโมท project wsp เข้าไป และจะ copy DLL ไปไว้ที่ C:\Windows\Microsoft.NET\assembly\GAC_MSIL ซึ่งทำให้โปรแกรมสามารถทำงานได้ทันที

******************************************************************************************************************************************

แต่พอเรามีการแก้ไข DLL เมื่อไหร่ ก็จะต้อง compile ใหม่ตามวิธีข้างบน จะทำให้เกิด version ตามขึ้นมาเรื่อยๆ ตามรูป

dll version

พอให้ admin เอาไปวางทับไฟล์เดิม ปรากฎว่า โปรแกรมทำงานผิดพลาดในหลาย ๆ อย่าง บางทีก็จะแจ้งว่า public token invalid
บางที หน้าจอก็ขึ้น something went wrong

ผลกระทบคือทุก app ที่มีการเรียกใช้งาน DLL จะต้องโปรโมทใหม่หมด จึงจะทำงานได้ตามปกติ

******************************************************************************************************************************************

เลยอยากถามว่ามีใครใช้แนวคิดเดียวกับผมบ้างไหมครับ และใครเคยเจอปัญหาแบบนี้บ้างครับ แก้ไขยังไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-02 10:37:19 By : hutvanos
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะย้าย Application และ DLL ที่พัฒนาขึ้นเองไปใช้กับเครื่องอื่นอย่างไรครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่