Witam.
Muszę napisać program który zamienia jedną linijkę w kodzie a potem kompiluje całe rozwiązanie. Napisałem sobie taką metodę:
public static void kompiluj(string msBuild, string zrodlowe, string docelowe) { zrodlowe = "\"" + zrodlowe + "\""; docelowe = "\"" + docelowe + "\""; string param = string.Format("{0} /p:Configuration=Release;DeployOnBuild=True;PackageAsSingleFile=False;outdir={1}", zrodlowe, docelowe); ProcessStartInfo psi = new ProcessStartInfo(msBuild, param); psi.RedirectStandardOutput = true; psi.UseShellExecute = false; var proc = Process.Start(psi); proc.BeginOutputReadLine(); proc.OutputDataReceived += Proc_OutputDataReceived; proc.WaitForExit(); } private static void Proc_OutputDataReceived(object sender, DataReceivedEventArgs e) { Console.WriteLine(e.Data); }
i wywołuję ją tak:
Kompilator.kompiluj("msBuild.exe", path, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "skompilowane"));
Oczywiście msbuild skopiowałem do folderu z programem. Jak skompiluje całe rozwiązanie w visual studio, a potem odpalę mój kompilator to nie ma żadnego problemu i wygeneruje folder skompilowane, ale jak już przed odpaleniem mojego programu choćbym jeden znak zmienię np. spację dołożę to mi errory wywala, jak potem sobie skompiluje to w visual studio to on błędu nie wywala i co więcej po skompilowaniu w visual da się skompilować za pomocą msbuild. Jak zrobić aby dało się kompilować za pomocą msbuild, bez wcześniejszej kompilacji w visual studio?
Takie wypluwa errory:
Kompilacja NIE POWIODŁA SIĘ. "C:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\MateuszsploitExploit\MateuszsploitExploit.csproj" (domyślny element docelowy) (1)-> (element docelowy CoreCompile) -> c:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\Packet\Connecter.cs(20,48): error CS1519: W deklaracji klasy, struktury lub członka interfejsu występuje nieprawidłowy token "=". [C:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\MateuszsploitExploit\MateuszsploitExploit.csproj] c:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\Packet\Connecter.cs(20,60): error CS1519: W deklaracji klasy, struktury lub członka interfejsu występuje nieprawidłowy token "(". [C:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\MateuszsploitExploit\MateuszsploitExploit.csproj] c:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\Packet\Server.cs(18,48): error CS1519: W deklaracji klasy, struktury lub członka interfejsu występuje nieprawidłowy token "=". [C:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\MateuszsploitExploit\MateuszsploitExploit.csproj] c:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\Packet\Server.cs(18,60): error CS1519: W deklaracji klasy, struktury lub członka interfejsu występuje nieprawidłowy token "(". [C:\Users\JanKustosz1\OneDrive\Programowanie\Projekty C#\SuperHaker\MateuszsploitExploit\MateuszsploitExploit.csproj] Ostrzeżenia: 0 Liczba błędów: 4 Czas, który upłynął: 00:00:00.84