如何共享扩展的自定义SQL代码分析规则dll

时间:2019-07-17 09:56:09

标签: c# .net visual-studio visual-studio-extensions

我已经建立并扩展了SSDT项目的“静态SQL代码分析规则”。通过将类库DLL复制到“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 140 \ Extensions”位置,它可以在我的本地系统中正常工作。

现在,我的挑战是将这个dll共享给其他开发人员。如何轻松共享?我不希望所有人都将其手动复制到DAC扩展文件夹中。

它应该类似于nuget包,或者应将其下载后的扩展安装在用户DAC扩展文件夹中。

有人可以在这里帮助我吗?如何实现呢?

我尝试创建VSIX扩展项目,并尝试将自定义规则dll安装到“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 140 \ Extensions“目录。但是我没有这样做。

构建后事件:复制“ $(TargetDir)\ TSqlRules $(TargetExt)”“ $(ProgramFiles)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 140 \ Extensions \ TSqlRules $(TargetExt)“ / y

自定义规则DLL应安装在“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 140 \ Extensions”目录中。

1 个答案:

答案 0 :(得分:0)

  

下载后应类似于nuget包或扩展名   应该安装在用户DAC扩展文件夹中。

不确定执行此操作的最佳方法。但是出于您的简单要求,如果您只想将一个dll共享到指定位置,则nuget packagevs extension更方便。

创建软件包时,可以包含Init.ps1文件和xxx.dll。并在Init.ps1中键入copy命令(类似于在构建后事件中执行的操作)。当您的nuget包被 VS IDE 中的任何项目使用时,它将调用power shell脚本Init.ps1。然后ps脚本可以将xxx.dll从packages文件夹复制到目标位置。

相关链接:Run power shell script during nuget package installation and removal