Od dłuższego czasu używam dynamicznie kompilatora i na starcie montuję potrzebne dll.
Dzisiaj natknąłem się jednak na pewne dziwactwo. Kod, który bez problemu mogę skompilować w vc#08 zawiera błędy składniowe według kompilatora 'dynamicznego'.
void jakasFunkcja()
{
//...
ActorDescription actorDesc = new ActorDescription()
{
BodyDescription = new BodyDescription(70)
};
//...
}
Kompilator dynamiczny (tak go nazwę dla odróżnienia) wyświetla błąd : "error CS1002: ; expected".
Udało mi się potwierdzić przypuszczenie, że kompilator dynamiczny pracuje wg starszej wersji NET i nie akceptuje nowości z 3.5.
Jak mogę użyć wybranej (najnowszej) wersji kompilatora? Szukałem już dużo na ten temat w google. Do tej pory robiłem tak:
System.CodeDom.Compiler.CodeDomProvider cdp =
System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp");
System.CodeDom.Compiler.CompilerResults cr = cdp.CompileAssemblyFromFile(parameters, fullPaths);
System.dll v2.0 zawiera te funkcje, ale nie ma System.dll 3.5 z nowymi odpowiednikami. Projekt był napoczęty jeszcze w vc#05 i później konwertowany. Proszę o pomoc :)