Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

codedom вызов сборки из сборки

67K
03 февраля 2011 года
cryker
2 / / 03.02.2011
Доброго времени суток, господа специалисты. Вопрос такой: есть форма test на которой лежит одна кнопка Button1 со следующим кодом... Что я делаю не так? что нужно сделать, чтобы по нажатию на второй кнопке тоже сгенирировалась сборка?
Imports System
Imports System.CodeDom
Imports System.CodeDom.Compiler
Imports System.Collections
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Drawing
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Class test
Dim str_tb As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call createtext()
Call createass()
End Sub
Private Sub createtext()
str_tb = "Imports System" & Chr(13) & Chr(10) & _
"Imports System.CodeDom" & Chr(13) & Chr(10) & _
"Imports System.CodeDom.Compiler" & Chr(13) & Chr(10) & _
"Imports System.Collections" & Chr(13) & Chr(10) & _
"Imports System.ComponentModel" & Chr(13) & Chr(10) & _
"Imports System.Diagnostics" & Chr(13) & Chr(10) & _
"Imports System.Windows.Forms" & Chr(13) & Chr(10) & _
"Imports System.Data" & Chr(13) & Chr(10) & _
"Imports System.Windows" & Chr(13) & Chr(10) & _
"Imports System.Data.SqlClient" & Chr(13) & Chr(10) & _
"Imports Microsoft.VisualBasic" & Chr(13) & Chr(10) & _
"Imports System.IO" & Chr(13) & Chr(10) & _
"Imports System.Drawing" & Chr(13) & Chr(10) & _
" <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _" & Chr(13) & Chr(10) & _
"Partial Class test" & Chr(13) & Chr(10) & _
" Inherits System.Windows.Forms.Form" & Chr(13) & Chr(10) & _
" <System.Diagnostics.DebuggerNonUserCode()> _" & Chr(13) & Chr(10) & _
" Protected Overrides Sub Dispose(ByVal disposing As Boolean)" & Chr(13) & Chr(10) & _
" Try" & Chr(13) & Chr(10) & _
" If Disposing AndAlso components IsNot Nothing Then" & Chr(13) & Chr(10) & _
" components.Dispose()" & Chr(13) & Chr(10) & _
" End If" & Chr(13) & Chr(10) & _
" Finally" & Chr(13) & Chr(10) & _
" MyBase.Dispose(Disposing)" & Chr(13) & Chr(10) & _
" End Try" & Chr(13) & Chr(10) & _
" End Sub" & Chr(13) & Chr(10) & _
" Private components As System.ComponentModel.IContainer" & Chr(13) & Chr(10) & _
" <System.Diagnostics.DebuggerStepThrough()> _" & Chr(13) & Chr(10) & _
" Private Sub InitializeComponent()" & Chr(13) & Chr(10) & _
" Me.Button1 = New System.Windows.Forms.Button" & Chr(13) & Chr(10) & _
" Me.SuspendLayout()" & Chr(13) & Chr(10) & _
" Me.Button1.Location = New System.Drawing.Point(114, 40)" & Chr(13) & Chr(10) & _
" Me.Button1.Name = " & Chr(34) & "Button1" & Chr(34) & "" & Chr(13) & Chr(10) & _
" Me.Button1.Size = New System.Drawing.Size(231, 39)" & Chr(13) & Chr(10) & _
" Me.Button1.TabIndex = 0" & Chr(13) & Chr(10) & _
" Me.Button1.Text = " & Chr(34) & "Button1" & Chr(34) & "" & Chr(13) & Chr(10) & _
" Me.Button1.UseVisualStyleBackColor = True" & Chr(13) & Chr(10) & _
" Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)" & Chr(13) & Chr(10) & _
" Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font" & Chr(13) & Chr(10) & _
" Me.ClientSize = New System.Drawing.Size(465, 133)" & Chr(13) & Chr(10) & _
" Me.Controls.Add(Me.Button1)" & Chr(13) & Chr(10) & _
" Me.Name = " & Chr(34) & "test" & Chr(34) & "" & Chr(13) & Chr(10) & _
" Me.Text = " & Chr(34) & "test" & Chr(34) & "" & Chr(13) & Chr(10) & _
" Me.ResumeLayout(False)" & Chr(13) & Chr(10) & _
" End Sub" & Chr(13) & Chr(10) & _
" Friend WithEvents Button1 As System.Windows.Forms.Button" & Chr(13) & Chr(10) & _
"End Class" & Chr(13) & Chr(10) & _
"Public Class test" & Chr(13) & Chr(10) & _
" Dim str_tb As String" & Chr(13) & Chr(10) & _
" Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click" & Chr(13) & Chr(10) & _
" Call createtext()" & Chr(13) & Chr(10) & _
" messagebox.show(str_tb)" & Chr(13) & Chr(10) & _
" Call createass()" & Chr(13) & Chr(10) & _
" End Sub" & Chr(13) & Chr(10) & _
" Private Sub createtext()" & Chr(13) & Chr(10) & _
" str_tb = " & Chr(34) & " <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & "Partial Class test" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Inherits System.Windows.Forms.Form" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " <System.Diagnostics.DebuggerNonUserCode()> _" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Protected Overrides Sub Dispose(ByVal disposing As Boolean)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Try" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " If Disposing AndAlso components IsNot Nothing Then" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " components.Dispose()" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " End If" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Finally" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " MyBase.Dispose(Disposing)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " End Try" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " End Sub" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Private components As System.ComponentModel.IContainer" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " <System.Diagnostics.DebuggerStepThrough()> _" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Private Sub InitializeComponent()" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Button1 = New System.Windows.Forms.Button" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.SuspendLayout()" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Button1.Location = New System.Drawing.Point(114, 40)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Button1.Name = " & Chr(34) & " & Chr(34) & " & Chr(34) & "Button1" & Chr(34) & " & Chr(34) & " & Chr(34) & "" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Button1.Size = New System.Drawing.Size(231, 39)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Button1.TabIndex = 0" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Button1.Text = " & Chr(34) & " & Chr(34) & " & Chr(34) & "Button1" & Chr(34) & " & Chr(34) & " & Chr(34) & "" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Button1.UseVisualStyleBackColor = True" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.ClientSize = New System.Drawing.Size(465, 133)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Controls.Add(Me.Button1)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Name = " & Chr(34) & " & Chr(34) & " & Chr(34) & "test" & Chr(34) & " & Chr(34) & " & Chr(34) & "" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.Text = " & Chr(34) & " & Chr(34) & " & Chr(34) & "test" & Chr(34) & " & Chr(34) & " & Chr(34) & "" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Me.ResumeLayout(False)" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " End Sub" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & " Friend WithEvents Button1 As System.Windows.Forms.Button" & Chr(34) & " & Chr(13) & Chr(10) & _" & Chr(13) & Chr(10) & _
"" & Chr(34) & "End Class" & Chr(34) & "" & Chr(13) & Chr(10) & _
" End Sub" & Chr(13) & Chr(10) & _
67K
03 февраля 2011 года
cryker
2 / / 03.02.2011
" Private Sub createass()" & Chr(13) & Chr(10) & _
" Dim objCodeCompiler As System.CodeDom.Compiler.CodeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider(" & Chr(34) & "VB" & Chr(34) & ")" & Chr(13) & Chr(10) & _
" Dim objCompilerParameters As New System.CodeDom.Compiler.CompilerParameters()" & Chr(13) & Chr(10) & _
" Dim asm As System.Reflection.Assembly" & Chr(13) & Chr(10) & _
" For Each asm In AppDomain.CurrentDomain.GetAssemblies()" & Chr(13) & Chr(10) & _
" objCompilerParameters.ReferencedAssemblies.Add(asm.Location)" & Chr(13) & Chr(10) & _
" Next" & Chr(13) & Chr(10) & _
" objCompilerParameters.CompilerOptions = " & Chr(34) & "/target:winexe /m:test" & Chr(34) & "" & Chr(13) & Chr(10) & _
" objCompilerParameters.OutputAssembly = " & Chr(34) & "test1.exe" & Chr(34) & "" & Chr(13) & Chr(10) & _
" objCompilerParameters.GenerateExecutable = True" & Chr(13) & Chr(10) & _
" objCompilerParameters.IncludeDebugInformation = False" & Chr(13) & Chr(10) & _
" Dim objCompileResults As System.CodeDom.Compiler.CompilerResults = _" & Chr(13) & Chr(10) & _
" objCodeCompiler.CompileAssemblyFromSource(objCompilerParameters, str_tb)" & Chr(13) & Chr(10) & _
" If objCompileResults.Errors.HasErrors Then" & Chr(13) & Chr(10) & _
" MsgBox(" & Chr(34) & "Error: Line>" & Chr(34) & " & objCompileResults.Errors(0).Line.ToString & " & Chr(34) & ", " & Chr(34) & " & _" & Chr(13) & Chr(10) & _
" objCompileResults.Errors(0).ErrorText)" & Chr(13) & Chr(10) & _
" Exit Sub" & Chr(13) & Chr(10) & _
" End If" & Chr(13) & Chr(10) & _
" Dim pri As New ProcessStartInfo(" & Chr(34) & "test1.exe" & Chr(34) & ")" & Chr(13) & Chr(10) & _
" Process.Start(pri)" & Chr(13) & Chr(10) & _
" End Sub" & Chr(13) & Chr(10) & _
"End Class"
End Sub
Private Sub createass()
Dim objCodeCompiler As System.CodeDom.Compiler.CodeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("VB")
Dim objCompilerParameters As New System.CodeDom.Compiler.CompilerParameters()
Dim asm As System.Reflection.Assembly
For Each asm In AppDomain.CurrentDomain.GetAssemblies()
objCompilerParameters.ReferencedAssemblies.Add(asm.Location)
Next
objCompilerParameters.CompilerOptions = "/target:winexe /m:test"
objCompilerParameters.OutputAssembly = "test.exe"
objCompilerParameters.GenerateExecutable = True
objCompilerParameters.IncludeDebugInformation = False
Dim objCompileResults As System.CodeDom.Compiler.CompilerResults = _
objCodeCompiler.CompileAssemblyFromSource(objCompilerParameters, str_tb)
If objCompileResults.Errors.HasErrors Then
MsgBox("Error: Line>" & objCompileResults.Errors(0).Line.ToString & ", " & _
objCompileResults.Errors(0).ErrorText)
Exit Sub
End If
Dim pri As New ProcessStartInfo("test.exe")
Process.Start(pri)
End Sub
End Class
создать тестовый пример с этим кодом - двухминутное дело, у меня проект типа windows.forms, совместимость не имеет значения, у меня стоит 2.0, но подойдет любая, если дело в этом... огромная просьба подсказать или указать на ресурс, сам найти не смог - с английским не так все хорошо, как хотелось бы...
5
04 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Ты правда думаешь что кто-то будет читать эту портянку?
Удосужься оформить сообщение в соответствии с правилами оформления.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог