Tham chiếu lắp ráp trong sqlproj không được triển khai đến máy chủ


9

Tôi có Dự án cơ sở dữ liệu Visual Studio 2013 lấy phiên bản sửa đổi của fastJSON làm tài liệu tham khảo. Tôi đã chọn Tạo DDL trong thuộc tính tham chiếu như trong ảnh chụp màn hình này:

bảng điều khiển tài sản fastJSON

Và trong tệp msbuild .sqlproj:

<Reference Include="fastJSON">
  <HintPath>..\..\fastjson\output\net40\fastJSON.dll</HintPath>
  <GenerateSqlClrDdl>True</GenerateSqlClrDdl>
</Reference>

Tuy nhiên bin / debug / Project.sql không chứa một dòng cho CREATE ASSEMBLY fastJSON . . .. Thêm lắp ráp hoạt động bằng tay và dự án của tôi sau đó sẽ triển khai và chạy. Tôi phải làm gì để Visual Studio triển khai lắp ráp?


5
Hmmm ... chúng ta được đặt thành False, và Model Awaređược đặt thành True, và chúng ta nhận được một CREATE ASSEMBLYtrong đầu ra. Có thể thử những cài đặt đó và xem điều gì xảy ra?
Jon Seigel

Câu trả lời:


10

Tôi đã chơi xung quanh một chút để tìm hiểu những cài đặt này làm gì ... khi tôi nhận xét, tôi chỉ đề cập đến những cài đặt của chúng tôi mà không hiểu chúng; Tôi không phải là người dẫn đầu dự án cho việc di chuyển của chúng tôi sang Dự án cơ sở dữ liệu, vì vậy tôi không quen với những chi tiết vụn vặt này.

Các Model Awaretài sản cần phải được thiết lập để True.

Thuộc tính này được ghi lại kém, nhưng theo hiểu biết của tôi, cho phép nó sẽ hiển thị các đối tượng trong cụm cho mô hình cơ sở dữ liệu để chúng có thể được sử dụng trong các trình bao bọc SQLCLR (nghĩa là CREATE ... EXTERNAL ...) và các tham chiếu có thể được giải quyết. Nếu dự án không bao gồm các đối tượng này trong mô hình, không có cách nào chúng sẽ được viết kịch bản trong đầu ra. Ngoài ra, nếu có một tham chiếu đến một đối tượng trong cụm và thuộc tính này được đặt thành False, dự án sẽ không thể xây dựng.

Các Generate Sql Scripttài sản tôi đã đề cập là trong một trạng thái tương tự của tài liệu. Điều này kiểm soát xem các thành viên hiển thị công khai trong hội đồng có được tự động viết mã vào đầu ra hay không. Chúng tôi đã vô hiệu hóa để duy trì tính linh hoạt của việc đổi tên các trình bao bọc SQLCLR và chọn lọc chỉ bao gồm các đối tượng chúng tôi cần. Cách bạn đặt này là tùy theo ý của bạn.

Hy vọng rằng sẽ giúp các tài liệu công cộng của các tài sản này!


Cảm ơn vì điều này Jon! Nó đã sửa lỗi "không thể giải quyết mã thông báo" của tôi.
Rolan

Chính xác thì "Model Aware" được đặt thành đúng ở đâu?
nh43de

Model Awarevà các thuộc tính khác có thể được đặt bằng cách nhấp chuột phải vào DLL được tham chiếu và chọn Properties.
d12
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.