繁体   English   中英

如何构建Windows 7和Windows 8默认支持的.NET应用程序?

[英]How to build .NET application supported by default on Windows 7 and Windows 8?

使用Visual Studio 2013 Pro,我构建了第一个小型控制台应用程序。 这个控制台应用程序应该可以快速在我们网络中的每台计算机上运行。 我们至少在Windows XP SP3和Windows 8.1上运行。

为此,我创建了一个针对.NET 2.0的应用程序,但令我惊讶的是,一台Windows 8计算机抱怨为此必须安装/激活.NET 3.5。 Windows 8默认情况下未激活此功能!

当我的目标是2.0时,它将在我们的XP和W7设备上运行,但不能在W8上运行。 当我瞄准4.0时,它可以在所有W8和某些W7上运行,但不能在XP上运行。

这是同一应用程序..真的没有办法告诉OS使用可用的框架吗?

我尝试将配置文件'MyAppName.exe.config'和'App.config'添加到包含以下内容的项目中:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

我交换了订单,并定位了.NET 2.0、3.0、3.5和3.5客户端配置文件。 但是当不以> = .NET 4为目标时,W8一直要求激活.NET 3.5

当客户端安装了.NET 2.0或更高版本时,如何在XP SP3,W7和W8上运行此小型应用程序而无需安装任何其他框架?

我相信您只是错过了startup元素:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

只需尝试使用此配置使用目标版本3.5重新构建它。

在其他选项中。 您在Windows XP和Windows 8上安装了.NET Framework 4.0吗? 如果是这样,您可以在构建应用程序时尝试将此版本用作目标版本。

我目前已通过在可执行文件前面放置一个批处理文件来解决该问题:

@ECHO OFF
IF EXIST "%systemroot%\Microsoft.NET\Framework\v4.0.30319" (
  %~dp0MyApp40.exe %*
) ELSE (
  %~dp0MyApp20.exe %*
)

但这当然不是理想的解决方案! 那么,是否真的没有其他方法可以打包必要的.net 4文件? 如果是的话..有人对此有简短的指南吗?

暂无
暂无

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

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