Глобальный импорт пространств имен VB.Net
У меня есть программа на C#, которая пытается динамически скомпилировать некоторый код VB.Net.
var vbc = new Microsoft.VisualBasic.VBCodeProvider(new Dictionary<string, string>
{ { "CompilerVersion", "v4.0" } });
var parameters = new CompilerParameters(new[] {"mscorlib.dll", "System.Core.dll",
"System.Data.dll", "System.dll", "System.Xml.dll", "Microsoft.VisualBasic.dll"},
@"MyFile.exe", false)
{
GenerateInMemory = false,
GenerateExecutable = true
};
CompilerResults results = vbc.CompileAssemblyFromFile(parameters, "file1.vb", "file2.vb",
"file3.vb", "file4.vb");
Работает, но с ошибками. Проблема заключается в том, что в реальном проекте Visual Basic по умолчанию автоматически импортируются следующие пространства имен:
System
System.Collections
System.Collections.Generic
System.Data
System.Diagnostics
System.Linq
System.Xml.Linq
System.Threading.Tasks
Microsoft.VisualBasic
Вы можете убедиться в этом сами, перейдя к созданию нового проекта Visual Basic, затем просмотрев свойства проекта и щелкнув "Ссылки". Вы увидите, что перечисленные выше пространства имен автоматически импортируются.
У меня вопрос, как я могу глобально автоматически импортировать эти пространства имен и передать его в VBCodeProvider
поэтому он будет автоматически импортировать их при попытке компиляции?
Я нашел похожий вопрос с моим здесь, однако, никаких ответов не было предоставлено, кроме ОП, который делает что-то "хакерское", чего я предпочитаю не делать.