【问题标题】:Visual Studio Test vs Form applicationVisual Studio 测试与表单应用程序
【发布时间】:2017-12-31 04:19:54
【问题描述】:

这是 Visual Studio 2017 V15.5.2,建议的修复均不适用。

我有一个简单的测试无法执行,但在“Dim comp”行出现异常。

System.BadImageFormatException: '无法加载文件或程序集 'System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。不应加载引用程序集以供执行。它们只能在 Reflection-only loader 上下文中加载。 (来自 HRESULT 的异常:0x80131058)'

下面的测试代码,但复制到 Windows 窗体应用程序时几乎相同的代码可以完美运行。

Imports Microsoft.CodeAnalysis
Imports Microsoft.CodeAnalysis.VisualBasic
Imports Xunit
Public Class ExpressionTests
    <Fact>
    Public Sub SystemConvert()
        Dim tree As SyntaxTree = VisualBasicSyntaxTree.ParseText(
"Imports System
Imports System.Collections.Generic
Imports System.Text
Class TestClass
    Private Sub TestMethod()
        Dim x = ""Hello, World!""
    End Sub
End Class")

Dim comp As Compilation = VisualBasicCompilation.Create("HelloWorld").
            AddReferences(MetadataReference.CreateFromFile(GetType(Object).Assembly.Location),
                          MetadataReference.CreateFromFile(GetType(ExpressionTests).Assembly.Location)).
                          AddSyntaxTrees(tree)
        Dim model As SemanticModel = comp.GetSemanticModel(tree)
    End Sub
End Class

下面的表单代码

Public Class Form1
    Dim tree As SyntaxTree = VisualBasicSyntaxTree.ParseText("Imports System
        Imports System.Collections.Generic
        Imports System.Text
        Class TestClass
            Private Sub TestMethod()
                Dim x = ""Hello, World!""
        End Sub
    End Class")

    Dim comp As Compilation = VisualBasicCompilation.Create("HelloWorld").
            AddReferences(MetadataReference.CreateFromFile(GetType(Object).Assembly.Location),
                          MetadataReference.CreateFromFile(GetType(Form1).Assembly.Location)).
                          AddSyntaxTrees(tree)

    Dim model As SemanticModel = comp.GetSemanticModel(tree)
End Class

【问题讨论】:

标签: vb.net visual-studio xunit.net


【解决方案1】:

在 Suni 的一些帮助和额外的步骤下,我有了一个解决方案。第 1 步更改测试项目的目标框架(我从 4.7.1 更改为 4.6.2,然后又回到 4.7.1)。第2步!!!在 NuGet Command Windows 中键入 Update-Package -reinstall。完成后一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多