我们的基础应用程序在现场有各种不同的版本:
- 版本1.0捆绑了.NET Framework 3.5 - 版本2.0捆绑了.NET Framework 4.0
我们通过安装程序分发更新,其中嵌入了一个.NET可执行文件。运行此安装程序的PC可能具有以下组合的基础应用程序:
- 版本1.0和版本2.0(.NET 3.5 / .NET 4.0) - 仅版本1.0(仅.NET 3.5) - 仅版本2.0(仅.NET 4.0)
我需要确保嵌入在安装程序中的.NET可执行文件可以可靠地运行。
我找到的方法建议将以下内容添加到
- 版本1.0捆绑了.NET Framework 3.5 - 版本2.0捆绑了.NET Framework 4.0
我们通过安装程序分发更新,其中嵌入了一个.NET可执行文件。运行此安装程序的PC可能具有以下组合的基础应用程序:
- 版本1.0和版本2.0(.NET 3.5 / .NET 4.0) - 仅版本1.0(仅.NET 3.5) - 仅版本2.0(仅.NET 4.0)
我需要确保嵌入在安装程序中的.NET可执行文件可以可靠地运行。
我找到的方法建议将以下内容添加到
app.config
文件中:<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
以下是几个问题:
这是否意味着如果.NET Framework 4.0存在,它将使用它,否则退而求其次使用.NET Framework 3.5(或任何之前使用2.0.50727 CLR的框架)?换句话说,这些标记是否按优先级排序?
.NET Framework在构建机器上的版本是否对应用程序产生任何运行时影响,还是
app.config
文件中版本的硬编码始终具有优先权?如果我添加了依赖于.NET 4.0特定功能的代码会发生什么?将
2.0.50727
版本包含在app.config
中(如上所示)是否会导致编译时错误或(只有在未安装.NET 4.0的情况下)运行时错误?
app.config
设置成功运行。这有意义吗? - LeopardSkinPillBoxHat