繁体   English   中英

如何在Windows 8中处理.Net Framework版本V4.0和V3.5

[英]How to deal with .Net framework versions V4.0 vs V3.5 in Windows 8

我需要在.net中编写一个简单的程序,该程序可以在其他人没有管理员权限的其他计算机上轻松运行。

问题在于Windows 8不再(完全)包含.Net 3.5和更早版本。

.Net 3.5似乎包含了早期版本,因此将2.0定位为3.5版本即可。 但是.net 4似乎不再像.net 3.5那样包含早期版本。

但是,每个.net应用似乎都绑定到.net版本。 结合起来,这意味着您需要为用户可能拥有的每个Windows版本构建.net应用程序的不同版本。 那太疯狂了,Microsoft通常对向后兼容性非常好。

不允许用户安装.net版本-他们可能没有管理员权限。

这似乎可以在* .exe.config中工作

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

https://www.devside.net/wamp-server/running-net-3-5-app-on-net-4-5-of-windows-8-and-server-2012

Windows 8的默认安装(我刚刚对一个干净的VM进行了安装)似乎安装了V1.0,V1.1,V2.0和V4.0,但仅安装了32位。 仅V4.0安装了64位。 我的.exe没有指定位数,因此默认为4.0,因此没有.net。 一种替代解决方案可能是强制使用32位模式。

(我猜Framework文件夹有32位版本,而Framework64文件夹有)

我自己还没有进行过测试,但是我相信您所需要的只是supportedRuntime配置元素的方案。

然后,您应该针对示例框架3.5构建您的应用程序目标(认为它是在Win7中内置的),然后在app.config文件中添加如下内容:

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

希望能有所帮助。

您可以将较旧的程序集包含在较新的可执行文件中,因此,如果需要,您可以在要支持的框架的最旧版本中编写应用程序,然后为每个框架版本创建可执行文件。

例如,将所有内容都写入2.0 DLL中,然后创建仅引导主DLL的2.0、3.5和4.0 EXE。

然后,您的用户将只运行其操作系统上安装的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM