Tôi đã viết một ứng dụng web asp.net sử dụng SMO chống lại SQL Server 2008 để có thể chạy một số tập lệnh DB. Nó tham chiếu các hội đồng (trong thư mục C: \ Program Files \ Microsoft SQL \ 100 \ SDK \ Assemblies thư mục Server):Không thể tìm thấy microsoft.sqlserver.batchparser.dll
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Các microsoft.sqlserver.batchparser.dll không có trong thư mục này. Địa phương (máy 32 bit, IIS7) Tôi không có vấn đề gì.
Khi tôi xuất bản các ứng dụng để cung cấp hosting của tôi (discountasp.net, SQL Server 2008, IIS7, 32bits quá), tôi nhận được lỗi này:
Could not load file or assembly 'Microsoft.SqlServer.BatchParser, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
Tôi đã tìm kiếm máy tính cục bộ của tôi và tôi không thể tìm thấy hội đồng này. Tuy nhiên nó hoạt động tốt trên máy này.
Công cụ "Báo cáo khám phá thiết lập Microsoft SQL Server 2008" báo cáo tôi đã cài đặt v10.1.2531.0 cục bộ.
Cảm ơn
Khi tôi cố gắng cài đặt SMO, trình cài đặt cho biết tôi đã cài đặt phiên bản cao hơn. Kể từ khi tôi có thể tham khảo Microsoft.SqlServer.Smo từ dự án của tôi, tôi đoán điều này xác nhận nó. –
@Nicolas: có, bạn sẽ cài đặt ứng dụng này cục bộ.Nó không phải là tuy nhiên được cài đặt trên nhà cung cấp lưu trữ của bạn, do đó vấn đề bạn đang gặp phải. – adrianbanks
Gọi gacutil/l cho tôi biết batchparser nằm trong GAC, tuy nhiên hộp thoại tham chiếu trong VS2010 sẽ không hiển thị cho tôi. Đi theo cách thủ công vào GAC để giải nén assembly và nó nằm trong thư mục GAC_32 chứ không phải GAC_MSIL. Dù sao, việc thêm điều này vào Reflector cho thấy nó có một tham chiếu đến Microsoft.VisualC .... khá kỳ quặc. –