Deployment 混合模式部署

Deployment 混合模式部署,deployment,.net-framework-version,mixed-mode,mixed,Deployment,.net Framework Version,Mixed Mode,Mixed,我有一个混合模式的VisualStudio解决方案。一些项目是.Net Framework 4.0,而其他项目是.Net Framework 2。 通过添加具有以下内容的app.config解决了此问题: <?xml version="1.0"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime versi

我有一个混合模式的VisualStudio解决方案。一些项目是.Net Framework 4.0,而其他项目是.Net Framework 2。 通过添加具有以下内容的app.config解决了此问题:

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">

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

但是,当我将其部署到安装中时,它不起作用。它发出了这样的信息: 混合模式程序集是根据运行时版本“v2.0.50727”生成的,如果没有其他配置信息,则无法在4.0运行时中加载

我曾尝试将app.config添加到安装中(因此该文件最终位于Program Files/…,并将其重命名为app.exe.config。(我原以为会在构建中创建app.exe.config,但事实并非如此)。
安装还包含一个文件“myApp”.exe.config,其中包含与app.config相同的内容。这也没有任何帮助。

很明显,CLR实际上没有使用您的.config文件。原因不太清楚,但app.exe.config肯定无法工作。而且这些双引号看起来太不正确,并且有多个引号也没有任何意义。可能是SysInternals的进程监视器c作为帮助,其跟踪显示您的应用程序正在搜索配置文件。请注意安装位置,强制以32位模式(默认)运行的应用程序必须安装在c:\program files(x86)中。为什么您说“app.exe.config肯定无法工作”?我在其他地方看过,这是应该添加到部署中的文件。你说的“片状”是什么意思?其中没有任何连续的引号。文件名必须与EXE文件匹配。因此,匹配mumble.EXE是mumble.EXE.config。当您右键单击EXE项目>添加>新项目>应用程序配置文件时,通常会正确发生这种情况。这可能不是问题的一部分,但没有任何提示。好的,我不理解这就是我所说的“myApp”。当我的应用程序名为“Resusci.exe”时,有一个文件名为“Resusci.exe.config”。其中包含我在原始邮件中写的内容。我在一个项目中将其添加到app.config中,并最终在Resusci.exe.config中。听起来不错,对吧?因此,我并不真的需要app.config或app.exe.config来完成安装?由于某些原因,它在安装时仍然不起作用。是的,它安装在c:\pro中gram文件(x86)结果表明,如果我以管理员身份运行应用程序,配置文件工作正常,一切正常。如果我不这样做,配置文件似乎无法正确读取。(进程监视器将其标记为“重新分析”)