问题标签 [target-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 如何在同一项目的不同配置中定位不同的框架版本?
我有一个面向 .NET 3.5 的类库。现在,我想添加一些需要 .NET 4.0 的功能,但我仍然希望能够生成面向 .NET 3.5 的版本(当然没有这些功能)。
理想情况下,我想根据配置定位不同的框架版本:
- 调试,发布 => .NET 3.5
- 调试 4.0,发布 4.0 => .NET 4.0
不幸的是,这似乎是不可能的,因为目标框架对于整个项目来说都是全局的......
有办法解决吗?我知道我可以创建第二个包含相同文件的项目,但这对可维护性很不利......
最简单的方法是什么?如果您曾经做过类似的事情,哪种方法效果最好?
visual-studio-2010 - VS2010 使用 TargetFramework 2.0 和 resx 文件运行项目导致 FileNotFound 'System.Windows.Forms v4.0'
我从 MS Visual Studio 2010 运行应用程序时遇到问题。实际上这是一个很长的故事,我之前遇到过不同的相关问题。但该项目至少运行了半年,没有任何变化。现在我试图再次运行它,但没有效果。首先这里有一些关于相关问题的链接的链接,这些问题可能看起来是相同的(但看起来不一样 - 只是相关的):
将项目的 .NET 目标框架从 4.0 更改为 3.5 后找不到文件(或程序集)
针对 3.5 框架的 VS2010 上的 RESX 文件问题
我的项目有 TargetFramework=2.0,它包含一些带有应用程序图像和图标的 resx 资源文件。我以前在资源文件编译方面遇到过问题,但修复了它们,就像上面链接中的帖子一样。直到昨天一切正常(我很久没有打开那个项目,所以不能说环境到底发生了什么变化)。
现在问题本身:项目构建成功,但是当应用程序运行时,我在表单设计器代码'resources. GetObject ("myImageName")':
我在 Microsoft 网站上询问了有关此问题的问题,发现另外一个人也遇到了完全相同的问题。但是他的问题被忽略了,我也没有回答。
环境: Windows 7 x64、.NET 4.0 SP1、VS 2010 Ultimate SP1。项目构建配置:Debug/AnyCPU(我尝试了 AnyCPU/x86 的 Debug/Release - 都一样。x64 和 IA64 - 对于这个项目来说是不可能的)
调查详情:
- resx 文件不包含对 4.0 程序集的引用。特别是它引用 System.Windows.Forms 2.0 和 System.Drawing 2.0
- 项目没有(并且不能包含对任何 4.0 程序集的引用,因为它具有 TargetFramwork 2.0)
- 在整个项目文件夹中搜索“4.0”条目发现了奇怪的事实:我的 exe 文件引用了 mscorlib 4.0。实际上我无法弄清楚它是如何发生的以及如何解决它。虽然 AppDomain.CurrentDomain.GetAssemblies() 返回 mscorlib 2.0,而不是 4.0(以及 2.0 版的所有其他 .NET 程序集)。
- 将 resgen 切换到 32 位模式无济于事。还原它也没有用。
- 使用记事本更改 proj 文件以使用“正确”版本的 resgen 也无济于事
- 一整天的调查和许多其他尝试都没有成功。我什至没有发现很多人有同样的问题。
- TargetFramework=3.5 也是如此,但是当设置 TargetFramework=4.0 时,一切都开始正常工作。不幸的是,目前无法迁移到 .NET 4.0
winforms - VS2010 无法调试 WinForm 应用
我正在家用 PC 上的 VS2010 上开发一个 winform 应用程序。为了在我大学的计算机上对其进行测试,我刚刚将其目标框架从 .NET Framework 4.0 客户端配置文件更改为 .NET Framework 2.0。(默认选择 .NET Framework 4.0 客户端配置文件)。在此之后,我在家用 PC 上运行(调试)我的应用程序,它运行缓慢,因此我决定将其目标框架更改为以前的框架。
更改目标框架后,我无法调试我的应用程序(按 F5 后“构建成功”显示在最左下角)。虽然我可以通过按 ctrl+F5 来运行我的应用程序,但无法调试。我已经重新启动了我的 VS 2010,但没有成功。
oracle - 找不到类型或命名空间名称“Oracle”(您是否缺少 using 指令或程序集引用?)
我已经使用 Visual Studio 2010 创建了一个新的控制台应用程序项目(我尝试使用 VS 2012 并且问题是一样的)。使用方法是:
在 Main 方法中,我编写了以下代码:
目标框架是 .NET 4.0 。我引用了 Oracle.DataAccess.dll 4.112.3.0 (.NET 4)。
问题是:如果我以 .NET 4.0 为目标,则编译不起作用,并显示找不到类型或命名空间名称“Oracle”(您是否缺少 using 指令或程序集引用?) 如果我以 .NET 为目标4.0 客户端配置文件,它工作正常。 事实是我需要针对 .NET 4.0 框架,而不是 .NET 4.0 客户端配置文件!
这个问题有解决方案吗?
reference - 为什么带有引用程序集的 VS2012 项目不能自动定位 4.0
在 Visual Studio 2012 C# 控制台应用程序中,我将“.NET Framework Target”从 4.5 降级到 4.0。安装了两个框架的 Win 7 Pro。
然后我引用了一个程序集,该程序集通过警告抱怨以下内容:
The primary reference "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
如果我此时尝试编译,则会出错,因为引用程序集的类型和名称空间不可用,就好像根本没有引用程序集一样。
“添加引用”对话框没有任何System.Runtime 选项,但如果我手动浏览到 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 并引用在那里找到的 System.Runtime 程序集,警告就会消失我能够编译。
问题:
System.Runtime 版本的这种强制是否是未来的潜在问题(部署)。
如果 VS 项目属性设置为针对 Framework 4.0(这与针对 4.0 SystemRuntime/CLR 无关),为什么引用的 DLL 没有选择它,为什么手动添加对我的项目的引用可以解决这个问题?
winforms - 如何在 Visual Studio 2012 中更改现有 Windows 窗体项目的目标框架?
我有一个使用 VC++ 在 Visual Studio 2012 中构建的现有项目,它在 Windows 7 或更高版本上运行良好。但在 Windows XP 上运行时,会出现应用程序需要 .NET framework v4.0 或更高版本才能运行的错误。我也无法在该系统上安装 .NET Framework v4.0。
所以,问题是我想降级我的项目的目标框架版本,而我在 Visual Studio 2012 - Windows Forms Application 项目中找不到任何方法。
是否有替代或更好的解决方案?
asp.net - asp.net 目标框架,以及降级 .net 版本
我订阅了网站的网络托管服务提供商。我正在尝试制作一个简单的 aspx 网页表单,用于接收数据并将其通过电子邮件发送到指定的电子邮件。问题是远程服务器使用 .net 2.0 版,而我的网页针对框架 4.5,当我在 Visual Studio 中将其更改为基于 2.0 构建时,我仍然收到服务器错误/在应用程序消息中,或者是因为 web.config文件说 targetframework =4.5 无法识别或等于 windows 的身份验证标签收到错误。我无权访问远程服务器上的 IIS 管理器,因此无法更新应用程序池。我可以采取什么步骤来解决我的问题,或者任何有更好知识的人可以帮助我吗?谢谢
c# - 从 TargetFrameworkAttribute 派生参考程序集路径
我正在一个独立工具中使用 Mono.Cecil 处理程序集。该工具旨在与框架无关(即将在任何 .NET 4[.x[.x]] 环境中加载],并且不依赖于例如 .NET SDK。
假设我在其 IL 中有一个包含以下 TargetFrameworkAttribute 的程序集:
将其映射到我认为正确的路径的正确方法是什么:-
我希望有一种相对干净的方法可以从 .NET 代码中进行管理。
是否有以C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework
编程方式获取的标准方法?可以依赖其中明显的子文件夹模式 - 即除此之外是否有任何文档?
我可以通过 MSBuild 看到,Microsoft.Common.targets
并且Microsoft.NETFramework.props
对此有相当多的“优化”逻辑。即使我愿意为此付出代价,例如在其中使用任务也会太脆弱,并且依赖于发现 MSBuild 工具(v12/4 ...)也不是理想的。有任何想法吗?
.net - 使用目标框架 1.1 构建 .net 框架 4.5 项目(向后兼容性问题)
我正在开发一个最初使用 .net framework 1.1 实现的成熟项目。
到进展时,大部分模块已经用 .net 框架 4.0 和 4.5 进行了升级或重写。
目前该项目有 3 个 asp .net web 应用程序。
- 使用框架 1.1 运行
- 使用框架 4.0 运行
- 使用框架 4.5 运行
我有一个名为“CommonLibrary”的 Visual Studio 项目,用框架 4.5 编写
是否可以通过使用适当的目标框架版本构建我的 CommonLibrary 在所有项目中使用它?