0

我查看了构建后事件命令的 M$ 文档,没有看到任何我需要的东西(http://msdn.microsoft.com/en-us/library/42x5kfw4.aspx),->条件检查

这是我的构建后事件命令(VS2013 Ult):

复制 $(TargetName).* "$(DevEnvDir)\PrivateAssemblies\" net stop "SQL Server Reporting Services (MSSQLSERVER)" 复制 $(TargetName).* "C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\" net start "SQL Server Reporting Services (MSSQLSERVER)"

我希望他们像这样工作:

复制 $(TargetName).* "$(DevEnvDir)\PrivateAssemblies\"

IF SSRS 2008 R2 DESTINATION EXISTS THEN net stop "SQL Server Reporting Services (MSSQLSERVER 2008 R2)" copy $(TargetName).* "C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin\"网络启动“SQL Server 报告服务 (MSSQLSERVER 2008 R2)”

IF SSRS 2012 DESTINATION EXISTS THEN net stop "SQL Server Reporting Services (MSSQLSERVER 2012)" copy $(TargetName).* "C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\" net start “SQL Server 报告服务 (MSSQLSERVER 2012)”

IF SSRS 2014 DESTINATION EXISTS THEN net stop "SQL Server Reporting Services (MSSQLSERVER 2014)" copy $(TargetName).* "C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\bin\" net start “SQL Server 报告服务 (MSSQLSERVER 2014)”

(问题是,我们仍然有几台服务器仍在运行 SQL Server 2008 R2,主要是 SQL Server 2012 和一些 SQL Server 2014。如果某些 VM 具有多个版本的 SQL Server迁移目的。)

我试图用下面这样的东西“摆弄”,但我无法从 M$ 或谷歌获得任何详细信息:

sc 查询“SQL Server 报告服务 (MSSQLSERVER)”类型=服务 | 查找“SQL Server 报告服务 (MSSQLSERVER)”| 查找“正在运行”>nul

if ERRORLEVEL 1 (echo NOT RUNNING) ELSE (echo RUNNING)

感谢 Rob PS 对 M$ 非常失望,无论是对于这个还是与 SSRS 数据处理扩展相关的详细信息

4

1 回答 1

0

我最终在 Build Events,Post-build event 命令行中执行了此操作(猜测它可能会与 DOS 命令一起使用,这很“笨拙”,但我从未在几个论坛上得到回复):

复制 "$(TargetDir)$(TargetName).*" "$(DevEnvDir)PrivateAssemblies\"

IF 存在“c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies”(echo Visual Studio 2010x64 存在)

如果存在“c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\私人集会”)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies”(echo Visual Studio 2010x86 存在)

如果存在 "c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies" ( 复制 "$(TargetDir)$(TargetName).*" "c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies")

如果存在 "c:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies" ( echo Visual Studio 2012x64 存在)

如果存在“c:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\私人集会”)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies”(echo Visual Studio 2012x86 存在)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies")

如果存在“c:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies”(echo Visual Studio 2013x64 存在)

如果存在“c:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\私人集会”)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies”(echo Visual Studio 2013x86 存在)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies")

如果存在 "c:\Program Files\Microsoft Visual Studio 13.0\Common7\IDE\PrivateAssemblies" ( echo Visual Studio 13.0-x64 exists )

如果存在“c:\Program Files\Microsoft Visual Studio 13.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files\Microsoft Visual Studio 13.0\Common7\IDE\私人集会”)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 13.0\Common7\IDE\PrivateAssemblies”(echo Visual Studio 13.0-x86 存在)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 13.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files (x86)\Microsoft Visual Studio 13.0\Common7\IDE\PrivateAssemblies")

如果存在“c:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies”( echo Visual Studio 14.0-x64 存在)

如果存在“c:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\私人集会”)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies”(echo Visual Studio 14.0-x86 存在)

如果存在“c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies”(复制“$(TargetDir)$(TargetName).*”“c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies")

网络停止“SQL Server 报告服务 (MSSQLSERVER)”

如果存在“C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin\”(回显 SQL Server 2008-MSRS10 存在)

如果存在 "C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin\" (复制 "$(TargetDir)$(TargetName).*" "C:\Program Files\Microsoft SQL Server\ MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin\" )

如果存在“C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\”(回显 SQL Server 2012-MSRS11 存在)

如果存在“C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\”(复制“$(TargetDir)$(TargetName).*”“C:\Program Files\Microsoft SQL Server\ MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\" )

如果存在“C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\bin\”(回显 SQL Server 2014-MSRS12 存在)

如果存在 "C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\bin\" (复制 "$(TargetDir)$(TargetName).*" "C:\Program Files\Microsoft SQL Server\ MSRS12.MSSQLSERVER\Reporting Services\ReportServer\bin\" )

如果存在 "C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin\" ( echo SQL Server 201x-MSRS13 存在)

如果存在 "C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin\" (复制 "$(TargetDir)$(TargetName).*" "C:\Program Files\Microsoft SQL Server\ MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin\" )

如果存在 "C:\Program Files\Microsoft SQL Server\MSRS14.MSSQLSERVER\Reporting Services\ReportServer\bin\" ( echo SQL Server 201x-MSRS14 存在)

如果存在 "C:\Program Files\Microsoft SQL Server\MSRS14.MSSQLSERVER\Reporting Services\ReportServer\bin\" (复制 "$(TargetDir)$(TargetName).*" "C:\Program Files\Microsoft SQL Server\ MSRS14.MSSQLSERVER\Reporting Services\ReportServer\bin\" )

网络启动“SQL Server 报告服务 (MSSQLSERVER)”

授予:

复制 "$(TargetDir)$(TargetName).*" "$(DevEnvDir)PrivateAssemblies\"

很可能是多余的(将在命令中再次发生),但是“我被覆盖了”(即,如果我在 VS2013 中构建 SSRS DPE,在 SQL Server 2012 中注册它,我将在 VS2010 中看到扩展当我创建报表或需要自定义报表查询设计器时,基于选择的(自定义)数据源)。

另外,这里有一些不错的处理器特定逻辑:http : //code-jedi.com/blog/post/Using-Platform-Specific-Libraries-from-a-Platform-Agnostic-Project.aspx

罗布·K

于 2014-08-20T13:06:12.490 回答