Компиляция проекта VB.NET во время выполнения с ресурсами - PullRequest
0 голосов
/ 22 сентября 2009

Мое приложение связывает набор VBScripts (текстовые файлы UTF8) в сборку VB.NET. Раньше я встраивал код скрипта в классы как члены String, но это оказывается плохим дизайном. Я хочу вместо этого включить их в качестве ресурсов. Как лучше всего добавлять ресурсы в CompilerParams?

Что у меня есть (исключая все проверки ошибок):

  Dim comParams As New CompilerParameters()
  comParams.OutputAssembly = DLL_Path
  comParams.ReferencedAssemblies.Add("System.dll")
  comParams.ReferencedAssemblies.Add("System.Windows.Forms.dll")
  comParams.ReferencedAssemblies.Add("System.Drawing.dll")
  comParams.ReferencedAssemblies.Add("mscorlib.dll")
  comParams.ReferencedAssemblies.Add(RhinoDotNETSDKPath)

  comParams.WarningLevel = 3
  comParams.CompilerOptions = "/target:library /optimize"

  comParams.GenerateExecutable = False
  comParams.GenerateInMemory = False

  Dim iCode As String = Me.DotNETSource

  Dim iProvider As CodeDomProvider = CodeDomProvider.CreateProvider("VB")
  comResult = iProvider.CompileAssemblyFromSource(comParams, New String() {iCode})

CompilerParameters содержит поля для EmbeddedResources и LinkedResources, но из найденных мною примеров они, похоже, относятся только к ресурсам фреймворка ???

1 Ответ

1 голос
/ 22 сентября 2009

Вы только что попробовали свойство EmbeddedResources?

Dim resources As new StringCollection
resources.Add("foo/bar.txt")
resources.Add("data/file.xml")
comParams.EmbeddedResources = resources

Я еще не проверял (сделаю это в ближайшее время), но я думаю, что это должно работать нормально. Если это не сработало, пожалуйста, подробно опишите, что происходит при попытке.

Я считаю, что если вы хотите изменить имя в сборке, вы должны использовать что-то вроде:

resources.Add("foo/bar.txt,testdata.bar.txt")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...