2013-05-07 66 views
6

Tôi đang làm việc với một trình cài đặt WIX và tục nhận được thông báo lỗi này:gì gây ra 1723 DLL không tìm thấy lỗi trong một trình cài đặt WIX

WIX Lỗi 1723. Đã xảy ra sự cố với gói cài đặt Windows này. Một DLL cần thiết để cài đặt này hoàn thành không thể chạy được.

Có bất kỳ vấn đề nào khác có thể gây ra lỗi 1723 không liên quan đến DLL không được tìm thấy không?

Tôi có thể nói chắc chắn 100% rằng DLL phải được tìm thấy vì các hành động tùy chỉnh trước đó trong cùng một trình cài đặt và tất cả đều sử dụng cùng một DLL.

Tôi đã gặp lỗi này trước và giải quyết nó bằng cách đổi tên hành động tùy chỉnh, vì vậy tôi cho rằng nó có liên quan đến độ dài của tên được phép cho hành động tùy chỉnh. Lần này tôi đã thử cả tên ngắn hơn và tên chính xác độ dài của các hành động tùy chỉnh đang hoạt động khác và vẫn gặp lỗi này.

Tôi đã điều tra nguyên nhân của 1723 và phổ biến nhất có vẻ là trình cài đặt không giải nén được DLL do quyền truy cập. Mặc dù điều này không giống như các hành động tùy chỉnh khác trong cùng một tệp tham chiếu cùng một tác phẩm DLL, tôi đã đảm bảo rằng thư mục mà trình cài đặt đang cố truy cập có quyền truy cập đầy đủ cho người dùng này, đồng thời tôi đang chạy trình cài đặt từ dấu nhắc lệnh trong quản trị viên nên chúng tôi không có vấn đề gì ở đó.

+0

Đó không phải là mã lỗi công cụ WiX vì vậy tôi hơi bối rối. Bạn có nhận được điều đó từ Windows Installer (MSI) trong khi cài đặt không? Nếu vậy bạn có thể chia sẻ thêm một chút thông tin về hành động tùy chỉnh, phụ thuộc của nó là gì, v.v ...? –

+0

Nó không phải là một lỗi công cụ WIX, như xa như tôi có thể nói nó là một mã lỗi tiêu chuẩn cho một trình cài đặt cửa sổ không thể tìm thấy DLL. Tuy nhiên tôi khá chắc chắn rằng nó đang được gây ra bởi WIX không xây dựng trình cài đặt một cách chính xác. Tôi nghĩ/hy vọng tôi vừa tìm ra nguyên nhân là một _ trong tên hành động tùy chỉnh. – Purplegoldfish

+0

Vâng, chúng tôi cần thêm chi tiết về cách bạn bao gồm hành động tùy chỉnh trong MSI của bạn và cách thực hiện hành động tùy chỉnh .dll thực sự là dịch vụ. –

Trả lời

0

Tôi đánh đầu vào tường trong nhiều tuần với cùng vấn đề này. Giải pháp của tôi không chỉ đổi tên tên phương thức hành động tùy chỉnh mà còn đổi tên id trong CustomAction.

<CustomAction Id="CA_InstallerDll.install" 
       BinaryKey="B_CustomAction_CA" 
       DllEntry="Install_InstallerDll" 
       Execute="deferred" 
       Return="check" 
       Impersonate="no"/> 

... để ...

<CustomAction Id="CA_DllInstaller.install" //changed InstallerDll to DllInstaller 
       BinaryKey="B_CustomAction_CA" 
       DllEntry="Install_DllInstaller" //Changed the CA Method name too 
       Execute="deferred" 
       Return="check" 
       Impersonate="no"/> 

Tôi không chắc chắn nếu điều này là những gì bạn có nghĩa là bằng cách "đổi tên hành động tùy chỉnh", nhưng đây là những gì cố định nó cho tôi. Điều khó chịu khác là ngay cả khi tôi đã đổi tên và đổi tên thành InstallerDll, nó vẫn không thành công vì lý do tương tự.

+1

Yea thats những gì tôi đã làm, về cơ bản thay đổi ID của hành động tùy chỉnh và tên của phương pháp để loại bỏ một _ và những thứ dường như làm việc. – Purplegoldfish

4

WIX 3.x (cụ thể hơn MakeSfxCA) có lỗi đã biết có thể tạo ra tệp dll gốc không chính xác dẫn đến lỗi "1723". Lỗi được kích hoạt tùy thuộc vào tên của các hành động tùy chỉnh (các phương pháp được trang trí với thuộc tính "CustomAction").

Nếu bạn có hai hành động tùy chỉnh có cùng tiền tố, tiền tố tiếp theo là chữ thường, chữ còn lại là chữ cái viết hoa (sắp tới trong bảng chữ cái), bạn có thể gặp lỗi "1723". Ví dụ. hai hành động tùy chỉnh có tên "đang hoạt động" và "isBlocked" là phiền hà.

Điều này liên quan đến việc MakeSfxCA phân loại sai các điểm nhập của phương thức đã xuất.

Cf. http://wixtoolset.org/issues/4502 cho sự cố của WIX và Adding a new Custom Action to a project prevents an existing Custom Action from being run để biết thêm chi tiết kỹ thuật.

+0

Mặc dù nó nói rằng nó được cố định trong 3.8/9, tôi đã có một vấn đề liên quan đến tiền tố chung của các hành động tùy chỉnh trong 3.10 –

1

Tôi gặp lỗi này gần đây và vấn đề là phụ thuộc vào DLL. DLL của tôi có phụ thuộc DLL khác đã có mặt trên máy phát triển của tôi và không có trên máy mục tiêu là tôi đã thấy lỗi. Bạn có thể kiểm tra các phụ thuộc của mình với Phụ thuộc Walker http://www.dependencywalker.com để tìm hiểu xem đây có phải là trường hợp không. Điều đó chắc chắn đã giúp tôi.

1

Chúng tôi đã dành hàng tháng để giải quyết máu error 1723.

Sau decompilation bởi dumpbin /Exports CustomAction.CA.dll (Runnable từ các công cụ phát triển visual studio), có đều được sắp xếp mục theo cách sau:

121 78 000039DE Dev***************** 
122 79 000039F4 DML***************** 
123 80 00003A0A DoN***************** 

Giả sử rằng sắp xếp nên được thực hiện sử dụng ASCII nó trông như thế này là không chính xác. Chữ cái lớn M phải trước chữ cái nhỏ e do đó, các mục nhập 121122 phải được thay thế.

Chúng tôi đã sao chép vấn đề đó trên Wix 3.9 R2 tuy nhiên trên một số vấn đề máy ảo Windows 7 Ultimate đã không xảy ra nhưng được tái sản xuất trên Windows 7 Enterprise.

Đối với giải pháp của chúng tôi là thay đổi trong dự án CustomAction, tên của CustomAction từ DML ********* thành DmL ******** việc phân loại hoạt động chính xác.

PS: Tôi đã cố gắng cung cấp phản hồi đó trực tiếp trên trang web WiX, tuy nhiên tôi không thể đăng ký.

+0

Wix sử dụng để có một [lỗi] (http://wixtoolset.org/issues/4502/) khi đặt hàng các mục nhưng được cố định trong Wix 3.9 RC3 trở đi. Bạn có thể kiểm tra lại phiên bản wix không. Để biết thêm thông tin kỹ thuật, hãy xem [đây trên SO] (http://stackoverflow.com/a/25299512/2300713). – Hille

+0

Vấn đề tồn tại trong 3.10 trên Win10 chắc chắn, không chắc chắn nếu nó là do đặt hàng nhưng tôi đã nhận một lỗi với tiền tố chung quá. –

0

Đối với tôi, đó là cách đổi tên phương thức hành động tùy chỉnh. Tôi đã thay đổi một chữ cái từ chữ thường sang chữ thường và quên thay đổi nó trong XML.

0

Trong trường hợp của tôi, trước tiên tôi phải biên dịch dự án CustomActions và sau đó biên dịch dự án Thiết lập.

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