[英]How to use a custom name for app.config or hard-code config values in my assembly
我已经在C#(mydll.dll)中编写了一个类库,该类库可以访问第三方dll(3rdpdll.dll)。 反过来,非.NET进程(myapp.exe)通过COM互操作消耗Mydll.dll。
Mydll.dll是.NET 4.0,但是3rdpdll.dll是使用v2.0.50727构建的,因此当我运行myapp.exe时,出现以下错误:
混合模式程序集是针对运行时的版本'v2.0.50727'构建的,如果没有其他配置信息,则无法在4.0运行时中加载...
如果我在包含以下XML的myapp.exe旁边创建一个名为“ myapp.exe.config”的文件,此问题将得到解决。
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
问题是myapp.exe进行了大量更新,并且名称中包含版本信息,例如myapp.v2.063.exe。 这将要求在应用程序的每个新迭代中都将重命名配置文件(myapp.v2.063.exe.config)。
有没有办法为配置文件声明一个静态名称,例如“ app.config”,这样就无需重命名和重新命名myapp.exe的每个新版本? 还是更好,我可以在mydll.dll中对useLegacyV2RuntimeActivationPolicy属性进行硬编码,以便避免完全使用配置文件吗?
在Visual Studio 2010中,您可以使用以下方式重命名app.config文件:
在项目 -> 项目属性中 ,选择构建事件选项卡,然后编辑构建后事件命令行以重命名.config文件,例如:
rename "$(TargetDir)$(TargetFileName).config" "$(TargetFileName).versionX"
我可能是错的,但我只是想,如果在.net 2.0框架中重新编译.net 4.0程序集,则存在.back向后兼容性。 然后,我认为混合模式汇编的此错误应该消失,您可能不需要此配置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.