我知道你可以在项目级别上设置构建前后事件,但我想在解决方案的构建开始和结束时停止和启动一个服务 - 即当我执行“构建解决方案”时,服务将停止并且构建的最后一个操作是重新启动服务。
解决方案属性页面上没有构建事件,那我该怎么办?
我猜我可以在msbuild文件中添加任务,但我不太了解VS和msbuild之间的关系。VS是否使用SLN文件执行msbuild?
我知道你可以在项目级别上设置构建前后事件,但我想在解决方案的构建开始和结束时停止和启动一个服务 - 即当我执行“构建解决方案”时,服务将停止并且构建的最后一个操作是重新启动服务。
解决方案属性页面上没有构建事件,那我该怎么办?
我猜我可以在msbuild文件中添加任务,但我不太了解VS和msbuild之间的关系。VS是否使用SLN文件执行msbuild?
我为自己的项目编写了一个宏,因为我需要这个确切的功能:
您可以编写一个宏来为您执行此操作。转到工具 -> 宏IDE
一旦到达那里,请双击EnvironmentEvents模块并添加以下代码:
Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
If (Scope = EnvDTE.vsBuildScope.vsBuildScopeSolution)
//Do whatever solution independent stuff you need here.
If(DTE.Solution.FullName = "C:\My Solutions\Solution1.sln")
//Do whatever you need for Solution1.sln here.
End If
End If
End Sub
Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
If (Scope = EnvDTE.vsBuildScope.vsBuildScopeSolution)
//Do whatever solution independent stuff you need here.
If(DTE.Solution.FullName = "C:\My Solutions\Solution1.sln")
//Do whatever you need for Solution1.sln here.
End If
End If
End Sub