VS2010 C#在目标中不包括正确的.net框架版本

时间:2018-12-12 01:01:14

标签: c# .net visual-studio-2010

我正在针对.net v3.5构建的VS2010 C#项目进行维护工作。

我最近将项目目标框架属性更改为列出的最新版本(v4)-由于期望使用默认情况下Win10中实际包含的.net版本-并进行了重建,而没有任何明显的问题。

不幸的是,生成的.exe中的嵌入式依赖项仍适用于.net v2.0.50727(这是针对v3.5 AFAIK的报告),并且目标计算机(全新安装的Win10)要求安装.net 3.5

使用MS VS2010 v10.0.40219.1 SP1Rel。 不幸的是,升级构建工具不是一个选择(使用VS2015构建程序可以很好地工作)。

我已经进行了谷歌搜索,但似乎没有找到任何类似的报告。

基于已经发表的一些评论,我似乎还没有完全清楚自己-希望以下内容会有所帮助。

1)目的/要求是能够在全新安装的Win10 安装此应用,而无需任何进一步下载。 (安装.net 3.5很容易,只是不需要安装)

2)最终的构建环境是自动化的,可视化的,并且不受我控制,因此升级工具链是一个主要痛苦,我希望尽可能避免。

3)AFAIK没有没有第三方库。列出的所有引用(dll)均为v4.0.30319。

4)这是基于XAML的开发,是解决方案中三个项目的一部分-其他条目是安装程序和C#定制安装库。据我所知,.net v4的所有设置都已设置。

2 个答案:

答案 0 :(得分:0)

  

不幸的是,生成的.exe中的嵌入式依赖项仍适用于.net v2.0.50727(这是针对v3.5 AFAIK的报告),并且目标计算机(全新安装的Win10)要求安装.net 3.5

因此,您的项目中存在一些依赖于.NET版本的依赖项。可能只是您需要Build > Clean Solution并使用Build > Rebuild Solution解决了问题。

否则,假设某些库确实需要某些.NET 3.x库,则安装请求是完全正确的。 Windows 10 没有安装.NET 2.0的选项,还有安装.NET 3.5的选项。如果您搜索Turn Windows features on or off,则会看到以下内容:

enter image description here

对.NET 2.x-3.x库的

任何依赖关系将触发对话框中第一个功能的激活/安装。

据我所知,您有2个选择:

  1. 所有内容移至Microsoft支持的框架,最优选的是.NET 4.7.2,它具有支持和安全性。
  2. 处理安装过程,并了解Microsoft并非故意安装这些版本的.NET。但是,您可以将这些安装程序添加为先决条件,甚至可以将它们与安装捆绑在一起,但这无济于事。

答案 1 :(得分:0)

感谢所有试图帮助我的人!

问题已解决。

此问题和我的困惑似乎有两个原因:

  1. 事实证明,正在执行测试的Win10的空白安装并不完全干净-英特尔预装的网络驱动程序/实用程序也具有.Net v3.5依赖性... < / p>

  2. 项目中的一个嵌入式资源实际上是一个未压缩的tar球,其中包含许多文件;包括一个依赖于.net v3.5的可执行文件-这是一个存储在svn中的二进制blob,因此其内容在几年内(即,在我参与之前)都没有更新过...

这两个问题都解决了,看来我的问题已经解决了,所以再次感谢您的反馈,建议和耐心,

PeterT:->