如何在 visual studio 2017 中保存文件后自动 运行 代码/命令
How to automatically run code / commands after files are saved in visual studio 2017
我有以下场景:
我在 VS 2017 中的解决方案包括一些我和其他人经常编辑的 python 文件。
每次 我保存 这些打开的 .py 文件之一,一些代码或 .bat 文件(或您认为最方便的任何文件)应该将它们从 X 复制到Y被处决?
例如,文件 a.py 和 b.py 在我的解决方案中打开,我只是编辑了其中一些并单击了 "Save" 或 "Save all",所以如果我单击 "Save" 我只想复制当前文档 - 如果它是 .py - 从路径 X 到路径 Y,如果我单击 "Save all" 我希望复制所有 .py 文档。
我遇到了这个问题:
Run script when finished saving file - Visual Studio Extensibility
向我介绍了 DTE,它允许我订阅文件保存事件,所以我想我可以纠正一些使用它的代码,但我不清楚这段代码如何 运行 在文件保存后自动。
你创建了一个 windows 服务并使用 FileSystemWatcher
class 但我宁愿给你一个更简单的解决方案,因为我真的无法写出如何制作 windows 服务,因为它可能很大 :(
无论如何,这是一个丑陋的解决方案 ;)
1。创建 WinForm 的应用程序
2。在其中创建一个计时器
3。在定时器的滴答事件中使用FileSystemWatcher
4。在 Form_Load
上启动计时器并隐藏表单 :)
5。将您的应用程序添加到启动项
示例:
public class form1
{
Forms.Timer tmr = new Forms.Timer
private void form_Load()
{
tmr.Tick += tmr_Tick();
tmr.Start
me.Hide();
}
private void tmr_Tick()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastWrite;
watcher.Filter = "*.*";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
我有以下场景: 我在 VS 2017 中的解决方案包括一些我和其他人经常编辑的 python 文件。 每次 我保存 这些打开的 .py 文件之一,一些代码或 .bat 文件(或您认为最方便的任何文件)应该将它们从 X 复制到Y被处决? 例如,文件 a.py 和 b.py 在我的解决方案中打开,我只是编辑了其中一些并单击了 "Save" 或 "Save all",所以如果我单击 "Save" 我只想复制当前文档 - 如果它是 .py - 从路径 X 到路径 Y,如果我单击 "Save all" 我希望复制所有 .py 文档。
我遇到了这个问题: Run script when finished saving file - Visual Studio Extensibility
向我介绍了 DTE,它允许我订阅文件保存事件,所以我想我可以纠正一些使用它的代码,但我不清楚这段代码如何 运行 在文件保存后自动。
你创建了一个 windows 服务并使用 FileSystemWatcher
class 但我宁愿给你一个更简单的解决方案,因为我真的无法写出如何制作 windows 服务,因为它可能很大 :(
无论如何,这是一个丑陋的解决方案 ;)
1。创建 WinForm 的应用程序
2。在其中创建一个计时器
3。在定时器的滴答事件中使用FileSystemWatcher
4。在 Form_Load
上启动计时器并隐藏表单 :)
5。将您的应用程序添加到启动项
示例:
public class form1
{
Forms.Timer tmr = new Forms.Timer
private void form_Load()
{
tmr.Tick += tmr_Tick();
tmr.Start
me.Hide();
}
private void tmr_Tick()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastWrite;
watcher.Filter = "*.*";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}