1
閱讀它,找不到任何適合我的東西。 基本上,我的資源中有一個名爲SourceCode.vb的文件。 我試圖使用方法:使用CodeDom編譯VB代碼
Dim objCodeCompiler As System.CodeDom.Compiler.ICodeCompiler = New VBCodeProvider().CreateCompiler
Dim objCompilerParameters As New System.CodeDom.Compiler.CompilerParameters()
objCompilerParameters.ReferencedAssemblies.Add("System.dll")
objCompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll")
objCompilerParameters.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
objCompilerParameters.ReferencedAssemblies.Add("System.Drawing.dll")
objCompilerParameters.ReferencedAssemblies.Add("System.Data.dll")
objCompilerParameters.ReferencedAssemblies.Add("System.Deployment.dll")
objCompilerParameters.ReferencedAssemblies.Add("System.Xml.dll")
objCompilerParameters.GenerateExecutable = True
objCompilerParameters.GenerateInMemory = False
objCompilerParameters.CompilerOptions = "/target:winexe"
objCompilerParameters.OutputAssembly = "C:\"
Dim strCode As String = My.Resources.SourceCode.ToString
Dim objCompileResults As System.CodeDom.Compiler.CompilerResults = objCodeCompiler.CompileAssemblyFromSource(objCompilerParameters, strCode)
If objCompileResults.Errors.HasErrors Then
MsgBox("Error: Line>" & objCompileResults.Errors(0).Line.ToString & ", " & objCompileResults.Errors(0).ErrorText)
Exit Sub
End If
我需要它來編譯代碼,使文件,並將其放置在C:\ - 出於某種原因,它不工作。錯誤是:
error: line>0, no input sources specified
任何想法?提前致謝。
編輯:問題是我需要的輸出後的文件添加的實際名稱。感謝Hans的幫助。
你確定你的源代碼實際上包含在strCode中嗎? https://msdn.microsoft.com/en-us/library/a0kc0z48(v=vs.90).aspx – Whitey
進出口100%肯定,只是檢查。 – suffice
好吧,那不是一個奇妙的錯誤信息。它*實際上*抱怨你的OutputAssembly分配。您必須指定文件名稱,而不是目錄名稱。像「c:\ test.exe」一樣。你也不應該使用它,你不能寫入c:盤的根目錄。如果完全忽略它,則會更好,您將在TEMP目錄中獲得程序集。 –