2012-02-14 11 views
8

Tôi đã triển khai một luồng công việc tùy chỉnh trong Visual Studio 2010 bằng Bộ công cụ dành cho nhà phát triển CRM 2011. Nó hoạt động tốt với không gian tên do hệ thống tạo ra. Tuy nhiên, khi tôi thay đổi không gian tên của dự án của tôi, nó ném một lỗi "Lỗi đăng ký plugin và/hoặc quy trình công việc. Không thể cập nhật trình cắm vào không chứa các loại hoặc nội dung lắp ráp được yêu cầu". trong khi triển khai. Và tôi đã thay đổi không gian tên trong tệp .crmregister, thuộc tính dự án và trong mã nguồn. Vậy thì vấn đề ở đây là gì?Lỗi khi đăng ký plugin và/hoặc quy trình công việc. Không thể cập nhật lắp ráp trình cắm thêm hoặc loại nội dung lắp ráp theo yêu cầu

Trả lời

11

Nếu bạn đang triển khai luồng công việc theo yêu cầu của mình qua gói công cụ phát triển CRM và sau đó nếu bạn đã thay đổi bất kỳ tên lớp hoặc không gian tên nào, bạn phải thay đổi tệp RegisterFile.crmregister theo cách thủ công vì Visual Studio không làm điều đó cho bạn. Vì vậy, nếu bạn thay đổi tên lớp của bạn từ A đến B và không gian tên của bạn từ N đến M rồi 'TypeName' từ xml dưới đây trong tập tin RegisterFile.crmregister phải như sau:

<?xml version="1.0" encoding="utf-8"?> 
<Register xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/crm/2011/tools/pluginregistration"> 
    <Solutions> 
    <Solution Assembly="PackageECRProcesses.CleanRegistration.dll" Id="ab72673b-c0a8-e111-af82-080027dd322f" IsolationMode="None" SourceType="Database"> 
     <WorkflowTypes> 
     <WorkflowType FriendlyName="any" Name="any" Description="any." WorkflowActivityGroupName="account" Id="f0e3f436-c1a8-e111-af82-080027dd322f" TypeName="M.B" /> 
     </WorkflowTypes> 
    </Solution> 
    </Solutions> 
    <XamlWorkflows /> 
</Register> 
1

Cố gắng thay đổi phiên bản lắp ráp.

+1

Bắt lỗi tương tự .. –

+0

Tôi gặp lỗi này. Khi tôi thay đổi phiên bản lắp ráp để khớp chính xác với phiên bản được triển khai, nó cuối cùng cũng hoạt động. –

1

Bạn có tham khảo bất kỳ hội đồng nào khác (như Microsoft.Xrm.Sdk) không? Nếu vậy, chúng cần được hợp nhất bằng công cụ như ILMerge nếu bạn đang triển khai vào cơ sở dữ liệu. Nếu bạn đang triển khai vào đĩa, chúng cũng cần phải có mặt trong thư mục assembly hoặc được cài đặt trong GAC.

+0

Có. Tôi đang sử dụng Microsoft.Xrm.Sdk, Microsoft.Xrm.Sdk.Query và Microsoft.Xrm.Sdk.Workflow. Và tất cả những gì tôi cần để hợp nhất ..? Bạn có thể cho tôi một cú pháp của việc sáp nhập nó ..? Tôi không biết về ILMerge. –

+0

Điều này sẽ bao gồm nó. http://blogs.msdn.com/b/crm/archive/2010/11/09/how-to-reference-assemblies-from-plug-ins.aspx –

0

Hủy đăng ký plugin, sau đó đăng ký lại.

+0

Trong khi đăng ký chỉ nhận được lỗi này trong Bộ công cụ dành cho nhà phát triển .. –

1

Bạn có thể cần phải kiểm tra xem plugin có cùng tên tồn tại như một plugin đã đăng ký trên tổ chức hay không. Hủy đăng ký plugin và đăng ký hội đồng và thực hiện lại các bước.

1

Nếu bạn có một số lớp được tạo tự động, ví dụ: Các plugin mà bạn đã tạo thông qua nhấp chuột phải vào Tạo trình cắm và sau đó bạn đã xóa nó, bạn phải dọn dẹp các dấu vết của nó trong RegisterFile.crmregister. Nếu đó là một plugin, bạn cần phải xóa toàn bộ nhánh với tên của nó.

7

Tôi chỉ gặp phải những vấn đề chính xác cùng trong khi chơi đùa với Bộ công cụ CRM.

Đây là cách tôi giải quyết vấn đề này:

  1. Đến Cài đặt/Giải pháp/Yoursolution trong CRM
  2. Xóa các mục xử lý thông báo SDK liên quan đến việc lắp ráp Plugin
  3. Xóa lắp ráp Plugin bản thân từ giải pháp
  4. Quay lại Visual Studio và Triển khai

Tôi không phải chỉnh sửa thủ công nó bất cứ điều gì.

1

Điều này có thể xảy ra nếu bạn thay đổi/cấu trúc lại tên lớp chính của plugin. (ví dụ: khi phân tích mã phàn nàn bạn có lỗi chính tả và bạn sửa lỗi) Sự cố này sẽ chỉ hiển thị vào lần sau bạn triển khai

Vì vậy, nếu bạn đã chnaged tên của lớp plugin ...

  1. trong giải pháp CRM Mặc định xóa plugin của bạn từ "Plugin-in Assemblies"
  2. Look trong RegisterFile.tập tin crmregister của plugin của bạn. trên thẻ XML, bạn sẽ thấy 3 tham chiếu đến tên lớp của bạn - một số trong số này có thể chưa được cập nhật.
  3. cập nhật tên trong tệp này và triển khai lại.

xong.

(ok chỉ nhận thấy Masoud Ghabachi nêu lứa tuổi này trước đây ...)

0

ngoài các trường hợp nêu trên, kiểm tra .snk tập tin hoặc tập tin .pfx. Nó có thay đổi trong lần triển khai thứ hai của bạn không.

trong trường hợp này, hãy thử sử dụng mã nguồn cũ hoặc nếu không bạn cần phải đăng ký lại trình cắm/công việc.

0

Đảm bảo rằng lớp plugin/luồng công việc của bạn là lớp công khai.

Tôi gặp lỗi tương tự vì lớp plugin của tôi là riêng tư.

0

Kiểm tra RegisterFile.crmregister thuộc tính luồng công việc TypeName không được chứa bất kỳ dấu cách nào.

0

Tôi đã thay đổi tệp khóa ký và nhận được lỗi, thay đổi lại tệp khóa trước đã giải quyết được sự cố cho tôi.

0

Phiên bản của bạn cần phải giống với phiên bản đã được xuất bản để nâng cấp. Chúng tôi đã có một phiên bản lắp ráp của 1 chính, 0 nhỏ - và một trong chúng tôi đã cố gắng để xuất bản là 12 lớn, 0 nhỏ.

Chúng tôi đã thay đổi số giải pháp Visual Studio trở lại phiên bản 1.0.0.0, Xây dựng, Tải lắp ráp, Cập nhật - và nó hoạt động!

Xóa nó sẽ KHÔNG giải quyết vấn đề do phụ thuộc từ quy trình làm việc nếu chúng được sử dụng.

Chúng tôi đã chuyển Tracing On và tìm thấy tập lệnh SQL để tìm thủ phạm.

0

Tôi đã nhận được điều này khi phần tử preImage được đặt sau phần tử postImage trong thanh ghi. Trao đổi địa điểm của họ đã sửa nó.

+0

Bạn có thể vui lòng xây dựng thêm câu trả lời của bạn thêm một chút mô tả về giải pháp bạn cung cấp không? – abarisone

3

Trong trường hợp của chúng tôi, chúng tôi đã sử dụng ILMerge và vô tình chúng tôi đã hợp nhất Microsoft.Xrm.Sdk.dll vào plugin của chúng tôi, xóa tệp dll (copy local = false) đã khắc phục sự cố.

Dll đã hợp nhất này không hoạt động vì nó ném ngoại lệ bảo mật Quy tắc bảo mật thừa kế vi phạm trong khi ghi đè thành viên: 'Microsoft.IdentityModel.Claims.ClaimsIdentity.System.Runtime.Serialization.ISerializeable.GetObjectData GetObjectData này có trong Microsoft.Xrm .Sdk.dll do đó ngoại lệ bảo mật từ triển khai SandBox.