Vb.net 代码引用系统。管理
无论我尝试什么,我都无法参考系统。在我的codedom项目管理中,我已经尝试过了Vb.net 代码引用系统。管理,vb.net,compiler-construction,codedom,Vb.net,Compiler Construction,Codedom,无论我尝试什么,我都无法参考系统。在我的codedom项目管理中,我已经尝试过了 Dim assemblyReferences = New String() {"System.Drawing.dll", "System.Data.dll", "System.Data.DataSetExtension
Dim assemblyReferences = New String() {"System.Drawing.dll",
"System.Data.dll",
"System.Data.DataSetExtensions.dll",
"System.Deployment.dll",
"System.Management.dll",
"System.Net.dll",
"System.Net.Http.dll",
"System.dll",
"System.Core.dll",
"mscorlib.dll",
"System.Windows.Forms.dll",
"System.Xml.dll",
"System.Xml.Linq.dll"}
param.ReferencedAssemblies.AddRange(assemblyReferences)
在其他方法中,例如隐式使用它和在类的顶部导入它,我发现它可以同时使用这两种方法
var compileUnit = new CodeCompileUnit();
compileUnit.ReferencedAssemblies.Add("System.dll");
compileUnit.ReferencedAssemblies.Add("System.Management.dll");
……还有
var parameters = new CompilerParameters(new string[] {"System.dll", "System.Management.dll" }, "TestAssembly.dll", true);
var results = provider.CompileAssemblyFromDom(parameters, compileUnit);
System.Management.dll
我使用的代码片段是:
var compileUnit = new CodeCompileUnit();
compileUnit.ReferencedAssemblies.Add("System.dll");
compileUnit.ReferencedAssemblies.Add("System.Management.dll");
var codeNamespace = new CodeNamespace("ClassLibrary1");
compileUnit.Namespaces.Add(codeNamespace);
var testClass = new CodeTypeDeclaration("TestClass");
var declaration = new CodeMemberField(typeof(System.Management.ManagementClass), "managementClass");
testClass.Members.Add(declaration);
codeNamespace.Types.Add(testClass);
我是用以下方法编写的:
using (var provider = CodeDomProvider.CreateProvider("VisualBasic"))
{
var parameters = new CompilerParameters(new string[] {"System.dll", "System.Management.dll" }, "TestAssembly.dll", true);
var results = provider.CompileAssemblyFromDom(parameters, compileUnit);
return results;
}
对不起,这个例子是用C#写的