Ich bin ein C# -Projekt mit den Roslyn CodeAnalysis APIs kompilieren, wie in der folgenden snipet:kopieren App.config, wenn sie mit CodeAnalysis.Compilation.Emit Kompilieren
...
EmitResult emitResult = null;
using (FileStream outputFileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
emitResult = compilation.Emit(outputFileStream, null);
}
...
Das funktioniert perfekt. Wenn ich jedoch ein ausführbares Projekt kompilieren möchte, das eine App.Config-Datei enthält, wird diese Datei nicht im Ausgabeverzeichnis ausgegeben (ähnlich wie es beim Kompilieren über Visual Studio ausgegeben wird), was problematisch ist, wenn Sie einige analysieren möchten konfiguriert zur Laufzeit aus dieser Datei.
Ich weiß, dass es nicht standardmäßig ausgegeben werden sollte, aber ich würde wahrscheinlich eine Option aktivieren oder irgendwie den App.Config-Pfad aus dem Projekt-Objekt extrahieren und es selbst ausgeben? Ich kann anscheinend keine Informationen diesbezüglich finden, und die Projektklasse scheint keine Informationen bezüglich der Konfigurationsdateien zu enthalten (außer ich verpasse etwas).
Gibt es eine bestimmte API, die ich verwenden muss, um das oben genannte zu erreichen? Irgendwelche Hinweise auf vorhandenen Code, der dies zur Verfügung stellt?
Vielen Dank!
Eine leichte Korrektur: Es gibt auch alle möglichen Mutationen, die mit der app.config passieren können, um Redirects und andere Systeme zu binden. Wenn es für das Szenario wichtig ist, müssen Sie möglicherweise nur MSBuild aufrufen. –