J'ai un projet de base de données Visual Studio 2013 qui prend une version modifiée de fastJSON comme référence. J'ai sélectionné Générer DDL dans les propriétés de référence comme indiqué dans cette capture d'écran:
Et dans le fichier msbuild .sqlproj:
<Reference Include="fastJSON">
<HintPath>..\..\fastjson\output\net40\fastJSON.dll</HintPath>
<GenerateSqlClrDdl>True</GenerateSqlClrDdl>
</Reference>
Cependant bin / debug / Project.sql ne contient pas de ligne pour CREATE ASSEMBLY fastJSON . . .
. L'ajout de l'assemblage fonctionne manuellement et mon projet sera ensuite déployé et exécuté. Que dois-je faire pour que Visual Studio déploie mon assembly?
sql-server
sql-clr
visual-studio-2013
database-projects
Justin Dearing
la source
la source
False
, etModel Aware
est défini surTrue
, et nous obtenons unCREATE ASSEMBLY
dans la sortie. Essayez peut-être ces paramètres et voyez ce qui se passe?Réponses:
J'ai joué un peu pour comprendre ce que font ces paramètres ... quand j'ai commenté, j'ai seulement mentionné ce que sont nos paramètres sans les comprendre; Je ne suis pas le chef de projet pour notre migration vers des projets de base de données, donc je ne connaissais pas les détails de ce genre de choses.
La
Model Aware
propriété doit être définie surTrue
.Cette propriété est mal documentée, mais d'après ce que je comprends, l'activer exposera les objets de l'assembly au modèle de base de données afin qu'ils puissent être utilisés dans les wrappers SQLCLR (c'est-à-dire
CREATE ... EXTERNAL ...
) et que les références puissent être résolues. Si le projet n'inclut pas ces objets dans le modèle, il est impossible qu'ils soient scriptés dans la sortie. En outre, s'il existe une référence à un objet dans l'assembly et que cette propriété est définie surFalse
, le projet ne pourra pas être généré.La
Generate Sql Script
propriété que j'ai mentionnée est dans un état de documentation similaire. Cela contrôle si les membres publiquement visibles de l'assembly sont automatiquement scriptés dans la sortie. Nous l'avons désactivé pour conserver la flexibilité de renommer les wrappers SQLCLR et d'inclure sélectivement uniquement les objets dont nous avons besoin. La façon dont vous définissez cela est à votre discrétion.Espérons que cela aide la documentation publique de ces propriétés!
la source
Model Aware
et d'autres propriétés peuvent être définies en cliquant avec le bouton droit sur la DLL référencée et en les sélectionnantProperties
.