2016-08-16 148 views
1

我有a project,它们同时针对.Net 2.0和.Net 4.5。我内置+在Visual Studio中成功发布2013年它在.csproj的文件.NET配置仍然说无法在Visual Studio 2015中以.Net 2.0为目标

<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>

然而,当我在2015年VS打开项目,它的目标.NET 4.5。

我在目标框架下拉可用2.0:

Target Framework Dropdown

当我点击”。NET Framework 2.0" 的它给了我一个弹出说

Are you sure?

更改目标框架要求关闭当前项目并重新开放。
项目中任何未保存的更改都会自动保存。

更改目标框架我需要手动修改项目文件才能构建。

您确定要更改此项目的目标框架吗?

当我点击yes时,目标框架回到4.5,没有其他事情发生。

  • 我试过重新打开项目和VS,没有运气。
  • 我已经尝试运行.NET 3.5安装程序(这显然包括2.0),但它说我需要使用“打开Windows功能打开/关闭”
    • 我已经确保了净3.5 Windows功能已启用。

现在我没有想法。有人遇到过这种情况么?

运行Windows 7

+0

看起来像你一直在编辑。csproj文件与文本编辑器,它已损坏。 TargetFrameworkVersion元素不能依赖于配置和平台名称。在屏幕截图中非常明显,请注意如何禁用组合框。你可以用MSBuild构建它,但是你会混淆IDE的东西。这不是为了让你的生活更加悲惨,像IntelliSense这样的基本的东西如果不知道目标,就不能正常工作。在VS2010与客户端配置文件btw一个相当臭名昭着的问题。你必须重新考虑你的方法。 –

+0

@HansPassant,我有一个VS2013项目,针对不同的目标框架有不同的构建配置。你是否说这在VS2015中不被支持? (我知道它在GUI中不受支持) – adrianm

+0

*任何* VS版本都不支持。当你看到当你改变IDE中的目标时会发生什么,这是最明显的,这是一个巨大的IDE重置工作。当您更改所选配置或平台时,您不会重置。当你这样做的时候会有多少事情会发生变化是不可预测的,智能感知是一个明显的伤亡事件。当你使用内置的设计器时,它会因隐藏的腐败而变得非常混乱,特别是.resx文件损坏可能非常难以诊断。 –

回答

0

Hans Passant在评论中提到,我显然(?)编辑了.csproj以针对不同的配置使用不同的框架。我发誓这并没有导致VS 2013中的任何问题。

但无论如何,我使用ILSpy验证生成的.dll是.Net 2.0,即使下拉说4.5。所以我想所有的结局都很好?

0

在的情况下,.NET Framework 2.0中被破坏,可使用.NET Framework安装验证工具:https://blogs.msdn.microsoft.com/astebner/2013/11/06/net-framework-setup-verification-tool-and-cleanup-tool-now-support-net-framework-4-5-1/核实,一旦它发现任何损坏,则可以使用.NET Framework修复工具:https://www.microsoft.com/en-us/download/details.aspx?id=30135来修复它。

或者在'打开或关闭Windows功能'下,取消选中.NET Framework 3.5(包括.NET 2.0和3.0),然后检查它。

相关问题