2

短い: CompilerParameters への参照を明示的に追加せずに、既定で .NET CodeDom コンパイラ (CSharpCodeProviderまたは) に含まれているアセンブリ (フレームワーク DLL) はどれですか?VBCodeProvider


CodeDomツール、つまりCSharpCodeProviderとを使用して、VBCodeProvider実行時にアセンブリをコンパイルしています。すべてではなく一部の .NET 参照アセンブリが既定で含まれていることに気付きました。

System.dllに参照を追加せずにすべてを使用できますが、たとえばCompilerParametersからは何も使用できません。System.Numerics.dll後者についてはparams.ReferencedAssemblies.Add("System.Numerics.dll")、コードに追加する必要があります。

したがって、私の質問:どのアセンブリがデフォルトで参照され、どのアセンブリが参照されていないかをどのように知ることができますか?

関連コード:

このコードは、参照を追加せずにコンパイルできます。

Imports System
Public Class Foo
    Public Sub TestClass
        Dim t = Tuple.Create(23,241)
    End Sub
End Class

このコードはできません:

Imports System
Imports System.Numerics
Public Class Foo
    Public Sub TestClass
        Dim t = Tuple.Create(23,241)
        Dim n As New Complex(32,112)
    End Sub
End Class

コンパイルに使用するコード (省略):

Dim params As New CompilerParameters()
'The path of the assembly to create
params.OutputAssembly = active.OutputName

'Compile as dll
params.GenerateExecutable = False

Dim vb As New VBCodeProvider
Dim res = vb.CompileAssemblyFromSource(params, active.Code)
4

0 に答える 0