4

asp.net mvcプロジェクトに xml ファイル (resource.xml) があり、そのファイルを .js ファイル (resource.js) の json に変換するためのT4ファイル( resource.tt )あります。

問題は、resource.xml ファイルが変更または保存されたときに、t4 ファイルを自動的に実行したいということです。

asp.netには.resxファイルがあり、変更するとカスタムツールが自動的にファイルを生成することを知っています。

私はそのようなものが欲しい

更新: 私のプロジェクトでは、/Resources/Resource.fr.xml に xml ファイルがあり、xml ファイルを読み取り、 /Resources/Resource.fr.jsファイルに json オブジェクトを生成する t4 ファイルがあります。xmlファイルの保存時や変更時に.jsファイルをt4ファイルで生成したい。

4

2 に答える 2

2

私はこの種の質問にこのスレッドで答えました

これをチェックしてください: https://github.com/thomaslevesque/AutoRunCustomTool または https://visualstudiogallery.msdn.microsoft.com/ecb123bf-44bb-4ae3-91ee-a08fc1b9770e Readme から:
拡張機能をインストールすると、各プロジェクト アイテムのプロパティで新しい [カスタム ツールを実行] が表示されます。このプロパティを編集して、ターゲット ファイルの名前を追加します。それでおしまい!
「ターゲット」ファイルは .tt ファイルです
于 2015-02-03T20:17:08.133 に答える
1

FileSystemWatcherクラスを見てください。ファイルまたはフォルダへの変更を監視します。

この例を見てください:

システムを使用する; 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ファイルが何らかの変更(作成、削除、または更新)を受けるたびに監視およびキャッチします。幸運を!

于 2013-02-21T06:33:26.150 に答える