Próbuję ustalić, czy jest możliwe, aby przy użyciu niestandardowego narzędzia w Visual Studio, aby zmienić zawartość jednego pliku, uruchom narzędzie niestandardowe innego.W Visual Studio, czy mogę utworzyć jeden plik niestandardowego narzędzia innego? (w tym przypadku przy użyciu Xsd2Code)
Mój scenariusz jest taki:
W projekcie Visual Studio C#, mam "master.xsd" schematu XML, który zawiera kilka innych innych plików xsd. Korzystam z narzędzia niestandardowego Visual Studio Custom Tool w celu wygenerowania pliku .cs ze schematu. Działa to dobrze, gdy sama master.xsd się zmienia, ale chciałbym, aby narzędzie niestandardowe działało na pliku master.xsd, gdy zmieni się jeden z pozostałych xsd.
Czy istnieje jakiś sposób wywołania jednego pliku przez narzędzie niestandardowe innego?
[EDIT - bardziej szczegółowo, dlaczego szukam w użyciu narzędzia niestandardowe tej]
Obecnie mamy plik GenerateFiles.bat który wywołuje Xsd2Code z wiersza polecenia do generowania kodu fiels ze schematów (jak sugeruje MattDavey poniżej). To działa, jest po prostu zbyt wolne.
Problem polega na tym, że przy każdej kompilacji Xsd2Code będzie działał, ale ponieważ wiele innych projektów zależy od tego projektu ze schematami, wszystkie one będą rekompilowane zbyt, chociaż prawdopodobnie nic się nie zmieniło. Praktyczny wynik jest taki, że nawet niewielka zmiana w teście jednostkowym obejmuje połowę rekompilacji projektów. Właśnie dlatego przyglądaliśmy się niestandardowemu podejściu do narzędzia, które generuje pliki kodu tylko wtedy, gdy zmienia się schemat.
Dzięki za sugestię. Niestety, tak to teraz robimy i jest to zbyt powolne.Problem polega na tym, że przy każdej kompilacji Xsd2Code będzie działał, ale ponieważ wiele innych projektów zależy od tego projektu ze schematami, wszystkie one będą rekompilowały się zbyt, chociaż prawdopodobnie nic się nie zmieniło. Właśnie dlatego szukałem niestandardowego narzędzia do generowania plików kodu tylko wtedy, gdy zmienia się schemat. Jednak w innych scenariuszach uważam, że podejście, które ty szczegółowo określasz, jest dobre. –
ooh twarde. Pierwszą rzeczą, która przychodzi do głowy jest pominięcie kroku xsd2code, gdy plik xsd pozostaje niezmieniony. Może to wymagać nieco bardziej złożonego wstępnego tworzenia skryptu wsadowego, prawdopodobnie generując skrót pliku xsd i porównując go z wcześniej zapisanym hashem. Ale teraz tylko spekuluję :) – MattDavey
@RobLevine patrz edytuj – MattDavey