我有一个vb.net程序,我已经将目标框架设置为dot net 4,但是当我在没有dot net 3.5的机器上运行它时(安装了dot net 4.5.2的Windows 8.1机器),当我的代码使用进程启动批处理文件时,它要求安装dot net 3.5。
我尝试重新定位它以使用dot net 4 full,但这没有帮助,我使用dotPeek来检查目标框架和IL反汇编程序,它们都只是show dot net 4。
有什么想法吗?
答案 0 :(得分:0)
Windows 8默认情况下不包含.NET 3.5(包括.NET 2.0和3.0)。但是,如果用户从Windows 7升级到Windows 8,则.NET Framework 3.5已完全启用。用户可以通过签入程序和功能确保启用此功能。
这些是用户可以执行检查的步骤列表:
How to enable .NET Framework 3.5
如果您的计算机未安装.NET 3.5,则无法为您的应用启动CLR。由于潜在的兼容性问题,.NET 4.0不会自动用于您的应用。首先测试您的应用程序是否使用.NET 4.0运行,然后将此部分添加到您的app.config中,以告知CLR更喜欢运行.NET 4.0(如果存在)。
<configuration>
<startup>
<supportedRuntime version="v4.0.30319"/>
</startup>
</configuration>
请检查此answer
答案 1 :(得分:0)
所涉及的其中一个库可能依赖于3.5。确保所有程序集都使用相同的.Net版本。
答案 2 :(得分:0)
我发现了问题,名为installutil.exe的批处理文件,正是这导致了dot net framework 3.5的请求。
一旦我从c:\ windows \ microsoft.net \ framework \ v4.xxxxxxx文件夹复制了installutil.exe,程序就会表现出来。
感谢所有提示回复: - )