混合模式C ++ / CLI System.IO.FileLoadException

时间:2016-08-01 16:10:11

标签: c# c++ .net dll

我的解决方案包含2个项目。

第一个项目是C ++ Win32应用程序,第二个项目是一个C#库,它管理另外两个不是由我构建的C#库。这背后的想法是构建一个C#库来处理这些其他2个C#库。

现在,这两个C#库是为.NET 3.5构建的,我已经设置了为.NET 3.5构建的C#项目。

我创建了一个C ++ Wrapper,它运行得很好。尝试创建我的C#库从其他2个库中的一个库中获取的类的对象时,会出现问题。

Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

现在,我一直在查看已发布此问题的十几个帖子。他们都没有解决我的问题。我为我的可执行文件(我的C ++项目)以及我的C#库尝试了几个不同的配置文件。

我试过了

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727"></supportedRuntime>
  </startup>

和其他几个一样。

1 个答案:

答案 0 :(得分:0)

在您的项目中,您似乎有一些v2.0.50727 dll。试试这个:

编辑您的App.config文件并添加:

 'use strict';

    var React = require('react-native');
    var {
      AppRegistry,
      StyleSheet,
      Text,
      View,
      TouchableOpacity,
    } = React;


    var TestIt = React.createClass({
      measureWelcome() {
        this.refs.welcome.measure(this.logWelcomeLayout);
      },

      logWelcomeLayout(ox, oy, width, height, px, py) {
        console.log("ox: " + ox);
        console.log("oy: " + oy);
        console.log("width: " + width);
        console.log("height: " + height);
        console.log("px: " + px);
        console.log("py: " + py);
      },

      render() {
        return (
          <View style={styles.container}>
            <Text style={styles.welcome} ref="welcome">
              Welcome to React Native!
            </Text>
            <TouchableOpacity onPress={this.measureWelcome}>
              <Text>Measure it</Text>
            </TouchableOpacity>
          </View>
        );
      }
    });

    var styles = StyleSheet.create({
      container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: '#F5FCFF',
      },
      welcome: {
        fontSize: 20,
        textAlign: 'center',
        margin: 10,
      },
      instructions: {
        textAlign: 'center',
        color: '#333333',
        marginBottom: 5,
      },
    });

    AppRegistry.registerComponent('TestIt', () => TestIt);