我已经建立并扩展了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”目录中。
答案 0 :(得分:0)
下载后应类似于nuget包或扩展名 应该安装在用户DAC扩展文件夹中。
不确定执行此操作的最佳方法。但是出于您的简单要求,如果您只想将一个dll共享到指定位置,则nuget package
比vs 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。