Я недавно начал работать с Roslyn для создания приложений во время выполнения.
Через несколько часов мне наконец удалось скомпилировать рабочий исполняемый файл консольного приложения, который выполняет только:
Console.WriteLine("Hello World, Roslyn");
Основная проблема, с которой я столкнулся, заключалась в том, как добавить ссылку в пространство имен System. Наконец, я использовал следующую строку, связанную с созданием объекта CSharpCompilation:
.AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location))
Он работает отлично, но когда я пытаюсь отладить это, я обнаружил, что:
typeof(object).Assembly.Location
возвращает:
"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscorlib.dll"
Я обеспокоен тем, что этот путь может варьироваться в зависимости от машины. Таким образом, мне было интересно, есть ли способ связать все зависимости рядом с сгенерированным .exe? (например, если вы хотите создать автономное приложение. Net Базовое приложение).