我有一个项目,我想在其中使用一些。net 4.0的功能,但核心要求是我可以使用System.Data.SQLite框架,它是针对2.X编译的。我看到提到这是可能的,比如这里接受的答案,但我不知道如何实现这一点。

当我只是试图运行我的4.0项目,同时引用2。我得到:

混合模式程序集是根据运行时版本“v2.0.50727”构建的 并且不能在4.0运行时加载 配置信息。

需要什么“额外配置”?


当前回答

我使用这样的配置:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v2.0"/>
    <supportedRuntime version="v4.0"/>
</startup>

为我工作

其他回答

我使用这样的配置:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v2.0"/>
    <supportedRuntime version="v4.0"/>
</startup>

为我工作

我也遇到过同样的错误,花了很长时间将建议的启动语句添加到我的解决方案中的各种配置文件中,试图隔离框架不匹配。毫无效果。我还向XML模式添加了启动信息。这也无济于事。查看导致问题的实际文件(只会说它被“移动或删除”),发现它实际上是许可编译器(LC)。

删除有问题的license。Licx文件似乎已经解决了这个问题。

我使用

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
</startup>

它是工作的,但只是在de </configuration>标签之前,否则启动标签不能正常工作

这取决于你的目标框架的版本,你可能想看看这里得到正确的字符串:

http://msdn.microsoft.com/en-us/library/ee517334.aspx

我浪费了很多时间试图弄清楚为什么我针对。net 4.0客户端发布的版本需要完整版本。 最后我用了这个:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0.30319" 
               sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>

当我们切换到Visual Studio 2015时,我遇到了这个问题。上面的答案对我们都没用。最后,我们通过将以下配置文件添加到机器上的所有sgen.exe可执行文件中来让它工作

<?xml version ="1.0"?>
    <configuration>
        <startup useLegacyV2RuntimeActivationPolicy="true">
            <supportedRuntime version="v4.0" />
        </startup>    
</configuration>

特别是在这个位置,即使我们的目标是。net 4.0:

C:\Program Files (x86)\Microsoft sdk \Windows\v10.0A\bin\NETFX 4.6 Tools