我有一个非常简单的Windows服务项目,我想使用Visual Studio 2015部署到服务器。我可以使用“发布”向导成功部署(右键单击项目 - >发布并部署到xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
) ,但我需要1)在发布之前停止服务(以便可以替换可执行文件),以及2)在复制文件后重新启动服务。
我知道如何从命令行启动/停止服务,this answer提供了一种直接在构建操作中执行此操作的方法。但是,在 VS将文件复制到服务器上的输出目录之后,我似乎找不到执行任何操作的方法。
例如,我尝试将以下内容添加到我的.csproj文件中,但没有运气:
\\myserver\c$\somepath\
在VS实际将文件复制到服务器之前执行 <Target Name="Mytarget" AfterTargets="AfterPublish">
<Warning Text="After AfterPublish" />
</Target>
,显然,我无法挂钩Mytarget
。我还试过AfterPublish
,PipelinePreDeployCopyAllFilesToOneFolder
和CopyAllFilesToSingleFolderForPackage
没有运气(这些似乎根本没有执行)。
我的最终目标是允许或多或少的一键更新服务,而无需登录到远程桌面并在每次更新后手动运行脚本。
在将Windows服务项目发布到服务器后,有什么方法可以让VS自动执行操作?