我的 asp.net mvc 项目中有 xml 文件(resource.xml)和 T4 文件(resource.tt)将该文件转换为.js文件(resource.js)中的 json 。
问题是我想在resource.xml文件更改或保存时自动运行t4文件。
我知道在asp.net中有一个 .resx 文件,当它发生变化时,自定义工具会自动生成一个文件,
我想要那样的东西
更新 在我的项目中,我在 /Resources/Resource.fr.xml 中有一个xml文件和一个读取xml文件并在 /Resources/Resource.fr.js中生成json对象的t4文件/ strong>文件。 我想在保存或更改xml文件时t4文件生成.js文件。
答案 0 :(得分:2)
我刚刚在thread
中回答了这类问题看看这个:https://github.com/thomaslevesque/AutoRunCustomTool或 https://visualstudiogallery.msdn.microsoft.com/ecb123bf-44bb-4ae3-91ee-a08fc1b9770e 从自述文件:安装扩展后,您应该在每个项目项的属性上看到一个新的运行自定义工具。只需编辑此属性即可添加目标文件的名称。那就是它!"目标"文件是你的.tt文件
答案 1 :(得分:1)
看一下FileSystemWatcher类。它监视文件或文件夹的更改。
看看这个例子:
使用System; 使用System.IO; 使用System.Security.Permissions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Run(@"C:\Users\Hanlet\Desktop\Watcher\ConsoleApplication1\bin\Debug");
}
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void Run(string path)
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path =path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.xml";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press \'q\' to quit the sample.");
while (Console.Read() != 'q') ;
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
if(e.FullPath.IndexOf("resource.xml") > - 1)
Console.WriteLine("The file was: " + e.ChangeType);
}
}
}
每当resource.xml文件遭受某种更改(创建,删除或更新)时,它都会监视和捕获。祝你好运!