Czy ktoś wie o narzędziu do wstępnego przetworzenia pliku źródłowego C# bez kompilowania go, podobnie jak przy użyciu flagi -E w GCC? Próbowałem za pomocą GCC - z powodzeniem przetwarza #if
dyrektyw, ale dławiki na wszelkich #region
dyrektyw ...Czy istnieje narzędzie do przetwarzania wstępnego C#?
Idealnie, chciałbym być w stanie uruchomić narzędzie nad plikiem .cs aby usunąć bloki, które oceniają #if
do fałszu i opcjonalnie można oznaczyć, czy usunąć/pozostawić nietknięte komentarze, #region
, dyrektyw itp.
Aby umieścić to w kontekście, chcę mieć możliwość opublikowania kodu źródłowego, który jest częścią (dużo) większy projekt, usuwając fragmenty, które są istotne tylko dla większego projektu. Jako przykład, istnieją fragmenty kodu, które wyglądają tak:
#if (SUBPROJECT)
namespace SubProject
#else
namespace CompleteProject
#endif
{
public class SomeClass()
{
#if (!SUBPROJECT)
// This might call a method contained in an assembly that potentially
// won't be available to the sub-project, or maybe a method that hooks
// into a C library via P/Invoke...
string result = CallSomeCleverMethod();
#else
// This might call a method that performs a simplified version of the
// above, but does so without the above's assembly or P/Invoke
// dependencies...
string result = CallSomeSimpleMethod();
#endif
}
}
Proszę pamiętać, że nie staram się robić buduje tutaj - to jest wyłącznie o publikowanie tylko część kodu źródłowego większego projektu.
Wszelkie pomysły/pomoc doceniane.
Gdzie mogę uzyskać plik wykonywalny? – NightOwl888
Jest to część kolekcji kompilatora GNU - prawdopodobnie jest już zainstalowana, jeśli używasz systemu OS X lub Linux. Jeśli używasz systemu Windows, MinGW jest prawdopodobnie tym, czego potrzebujesz. –
Znalazłem jeden, który działa tutaj: http://mcpp.sourceforge.net/download.html, ale plik wykonywalny to mccp zamiast cpp. – NightOwl888