C#多目标平台dll

C#多目标平台dll,c#,dll,unmanaged,C#,Dll,Unmanaged,我在3.5和4.5平台上使用C#dll时遇到问题。我有一个主应用程序(非托管代码),它使用C#dll。我需要将我的dll定位到3.5和4.5平台。 对于C#exe应用程序,我使用了app.exe.config文件,如 <?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v2.0.50727" /> <supportedRunt

我在3.5和4.5平台上使用C#dll时遇到问题。我有一个主应用程序(非托管代码),它使用C#dll。我需要将我的dll定位到3.5和4.5平台。 对于C#exe应用程序,我使用了app.exe.config文件,如

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
  </startup>
</configuration>

我试着把它放在dll文件夹中,放在主应用程序文件夹中,名字是lib_name.config.dll和main_app.config.exe。但它仍然不起作用。 我应该将单个dll定位于两个平台(所以我不能只使用3.5或4.5框架)。
如何使用dll的配置文件?

这是托管代码的问题之一,我的意思是,如果使用“协议/规则”创建dll,则使用该dll的应用程序应该理解该“协议”。所以我认为这是不可能的

我总是使用C/C++非托管(而不是.NET)编程DLL,因此它们是字节码,除非您使用特定功能,否则它们可以在任何编程语言或平台(甚至.NET)上从windows 95运行到windows 8

问候,,
Carles

A.config文件仍然适用于非托管主机程序。但它必须具有该EXE的名称,并与该EXE存储在同一目录中。编写自定义CLR主机通常是最好的方法,它可以使用ICLRMetaHost::GetRuntime()请求特定的CLR版本。