Lớp thuộc tính Độ dài chú thích PersistedResolvableAnnotation


7

Tôi đang cố gắng triển khai một dự án ssdt bằng tiện ích sqlpackage.exe. Tôi nhận được lỗi sau (bằng tiếng Đức):

Fehler bei der Erstellung des Bereitstellungsplans. Die Bereitstellung kann nicht fortgesetzt werden. Die property-Klasse Chiều dài ist nicht in der Element-oder Chú thích-Klasse PersistedResolvableAnnotation enthalten.

Nó có nghĩa là sth. giống:

Lỗi trong khi tạo kế hoạch triển khai. Triển khai không thể tiến hành. Độ dài lớp thuộc tính không được bao gồm trong lớp phần tử hoặc chú thích PersistedResolvableAnnotation.

Tôi không thể tìm thấy nhiều thông tin về "PersistedResolvableAnnotation". Nhưng tôi nhận ra rằng nó được bao gồm trong model.xml trong dacpac.

Nó chứa một số SqlLogins được định nghĩa tương tự như cái này:

<Element Type="SqlUser" Name="[Angela]">
            <Property Name="IsWithoutLogin" Value="True" />
            <Relationship Name="DefaultSchema">
                <Entry>
                    <References Name="[Angela]" Disambiguator="8" />
                    <Annotation Type="**PersistedResolvableAnnotation**" Name="[Angela]">
                        <Property Name="TargetTypeStorage" Value="SqlSchema" />
                        <Property Name="Length" Value="8" />
                        <Property Name="Offset" Value="62" />
                    </Annotation>
                </Entry>
            </Relationship>
        </Element>

Angela (và các ứng cử viên khác) không tồn tại trên máy chủ đích dưới dạng Đăng nhập, mặc dù họ là những người dùng cơ sở dữ liệu đã đăng ký trong db mục tiêu. Tôi sẽ mong đợi một lỗi khác - nếu có - hơn lỗi vô dụng này.

Cơ sở dữ liệu dự án dựa trên một bản án SQL Server khá cũ. Có thể đây là một số tính năng / cú pháp hoặc thuộc tính không dùng nữa đến từ phiên bản Sql Server và đơn giản là không được hỗ trợ? Có ai biết thêm chi tiết không?

Câu trả lời:


7

Tôi tìm thấy vấn đề bản thân mình. Tôi sẽ ghi lại nó trong trường hợp bất kỳ ai khác đang phải đối mặt với vấn đề này trong tương lai.

Định nghĩa người dùng sau:

CREATE USER [Angela] WITHOUT LOGIN
    WITH DEFAULT_SCHEMA = [Angela];

đã tạo mã sau đây trong tệp model.xml tránh xuất bản, có thể do lược đồ (Angela) được sử dụng ở đó không hợp lệ vì đơn giản là nó không tồn tại:

<Element Type="SqlUser" Name="[Angela]">
            <Property Name="IsWithoutLogin" Value="True" />
            <Relationship Name="DefaultSchema">
                <Entry>
                    <Annotation Type="PersistedResolvableAnnotation" Name="[Angela]">
                        <Property Name="TargetTypeStorage" Value="SqlSchema" />
                        <Property Name="Length" Value="9" />
                        <Property Name="Offset" Value="63" />
                    </Annotation>
                </Entry>
            </Relationship>
        </Element>

Sau khi thay đổi định nghĩa người dùng thành:

CREATE USER [Angela] WITHOUT LOGIN
    WITH DEFAULT_SCHEMA = [dbo];

mô hình trông như sau và có thể được công bố:

<Element Type="SqlUser" Name="[Angela]">
        <Property Name="IsWithoutLogin" Value="True" />
    </Element>

Tôi có cảm giác rằng hành vi kỳ lạ này là một dạng tiếp theo của một hành vi sai trái khác bởi vì tôi hy vọng lược đồ không tồn tại sẽ gây ra lỗi trình biên dịch.


2

Đối với tôi, giải pháp là tôi đã sử dụng một phiên bản lỗi thời của SqlPackage.exe.

Đường dẫn phiên bản cũ:

C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe

Đường dẫn phiên bản mới:

C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe

Nó được cài đặt bởi Microsoft SQL Server Data Tools (SSDT) .


1

Đối với chúng tôi, điều này xảy ra do cài đặt Visual Studio 2015 trên các máy chủ xây dựng của chúng tôi.

Tôi đã làm theo các bước trong một trong những câu trả lời trong liên kết này

Cảm ơn đã tiếp cận về điều này. Thỉnh thoảng chúng tôi cần thay đổi định dạng của tệp model.xml và khi điều này xảy ra, cần phải cài đặt phiên bản cập nhật của SqlPackage.exe, để nó có thể đọc định dạng đã sửa đổi. Tải xuống có sẵn tại đây: https://www.microsoft.com/en-us/doad/details.aspx?id=51238

cũng như sử dụng một phiên bản mới của SqlPackage tại

C: \ Tệp chương trình (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Tiện ích mở rộng \ Microsoft \ SQLDB \ DAC \ 130 \ sqlpackage.exe

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.