2012-07-04 35 views
29

Tôi đã tạo một thư viện lớp cho một luồng công việc trên một máy cục bộ và xây dựng nó. Tôi di chuyển các giải pháp hoàn chỉnh đến một máy chủ Tridion và cố gắng đăng ký lắp ráp trong máy chủ sử dụng công cụ regasm.exe như sau:Cách đăng ký một assembly .NET như COM?

C:\User\XYZ\Desktop\>RegAsm \codebase F:\Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll 

Tôi đã nhận lỗi sau:

failed to load 'F:\Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll ' because it is not a valid .NET Assembly.

chi tiết Máy chủ của tôi:

64-bit, Windows Server 2008 R2 Doanh nghiệp và .NET Framework 4 được cài đặt.

+0

Có thể đó là sự cố 32- so với 64 bit không? Nó có thể là hệ thống từ xa không có cài đặt .NET 4.0? – reuben

+0

máy chủ 64 bit của nó và .net 4 được cài đặt và tôi đã xây dựng thư viện lớp học trong khung 4 – user1428019

+0

Bạn biết dấu gạch chéo của bạn trên "\ codebase" đang diễn ra sai, phải không? Nó phải là "/ codebase" (không có dấu ngoặc kép). – reuben

Trả lời

62

Bạn có chắc chắn bạn có quyền RegAsm trong đường dẫn của bạn vì bạn đang gọi nó bằng tên exe mà không chỉ định đường dẫn đầy đủ? Bạn phải gọi phiên bản bên phải của regasm cho nó hoạt động, tức là phiên bản 32 hoặc 64-bit của .NET 4.

Cố gắng xác định đường dẫn đầy đủ:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /codebase F:\Workflow\WorkflowHandler\bin\debug\WorkflowHandler.dll 

hoặc

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /codebase F:\Workflow\WorkflowHandler\bin\debug\WorkflowHandler.dll 

Ngoài ra tôi nhận thấy rằng trong đường dẫn đến hội đồng của bạn, bạn có một số ký tự / thay vì \. Đảm bảo bạn đang đặt đúng đường dẫn.

+0

Cảm ơn rất nhiều, tôi đã sử dụng sai RegAsm.exe, bây giờ tôi có thể đăng ký thành công. Làm thế nào tôi có thể kiểm tra xem lắp ráp registerd là có ở đúng nơi? cho dù nó thực sự là registerd hay không? – user1428019

+0

@ user1428019 Nếu không thành công, nó phải được đăng ký thành công. Nếu bạn đã đăng ký Visual Studio trên máy, bạn có thể thử thêm tham chiếu vào thành phần COM và xem liệu nó có được liệt kê ở đó hay không. Nếu không, bạn có thể viết một VBScript và thử instantiating thành phần COM ở đó. –

+0

Cảm ơn. Tôi đã sử dụng Framework64 RegAsm trên một máy 64bit, khi tôi sử dụng máy 32 bit nó hoạt động. Phải là một dll 32 bit :) –

Các vấn đề liên quan