问题标签 [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.
c# - net47 中的 System.Net.Http
我在 Windows 上有一个普通的类库,使用 .NET 4.7
我想包括web-push-csharp。
该软件包列出了 2 个可接受的依赖项(Newtonsoft Json 和 BouncyCastle)。它还想安装Microsoft.Net.Http。我不知道为什么。我不需要它。我的目标框架带有一个非常好的System.Net.Http
参考。由于该 Microsoft 软件包有一个其他依赖项列表,这些依赖项与我链中更高级别的其他依赖项发生冲突,因此这是一个巨大的不便。为什么我要包含一个我不需要的包?
net47
现在我认为这不应该是一个问题,去克隆网络推送包存储库,将我的目标框架放入其中......这是正确的,如果没有外部*.Net.Http
参考,你无法为目标框架编译。然而,我的Create New Project
.NET 4.7 项目已经提供了这样的参考,而根本没有触及 nuget。
仅使用 NewtonsoftJson 和 BouncyCastle 将所有包文件复制到新的 ClassLibrary1 中效果很好。
我在这里想念什么?为什么 .NET Framework 从 4.5 到 4.6 失去了它的 System.Net.Http?为什么没有可用的 FrameworkTarget,我可以说“这很好,我有一个完整的 4.7”?
除了克隆存储库并从中创建一个普通的 4.7 类库供我使用之外,还有其他选择吗?
附加信息:
我克隆了 web-push-csharp 存储库并添加了一个新的目标框架net47
,而不依赖于Microsoft.Net.Http
:
这会导致多个编译错误:
错误 CS0234 命名空间“System.Net”中不存在类型或命名空间名称“Http”(您是否缺少程序集引用?) WebPush(net47)
解决方案
对于阅读这篇文章并寻找解决方案的任何人:在测试之后,我将接受的答案合并到一个 fork 的分支中,并向维护者发送了一个Pull 请求,以便它可以在原始包中使用。
asp.net - ASP.NET 网站代码已更改 - 错误 503 和一个神秘的错误页面弹出
我有一个 ASP.NET 网站,我不认识的人访问了该网站。我的代码已以这样的方式更改,每当我在浏览器中打开系统的任何页面时,都会弹出一个带有错误消息的简单 HTML 页面。
检查浏览器页面上的网络详细信息,告诉我每次尝试运行我的应用程序时都会返回状态代码 503。我的应用程序没有显示通常的错误消息,而是向我显示了这个 HTML 页面,其中包含我之前提到的错误消息。
我尝试在整个解决方案中搜索神秘 HTML 页面的名称,并尝试查看它被包含在哪里,但没有以它的名称命名的条目。
我也检查了 IIS 设置,但它们似乎没问题。
出现的页面而不是我尝试打开的任何页面,被命名为 app_offline.htm,我在任何脚本或文件中都看不到它的提及。
我无法弄清楚它适合在哪里。任何解决方案都会非常有帮助。
** 尝试在 Visual Studio 2008 中构建时,也无法识别 targetFramework 属性。尝试重新安装 .NET Framework 并再次注册 IIS。不工作!
请帮忙!!
asp.net-mvc - targetFramework 4.5.2 上的 IIS 8.5 错误
我在 windows server 2012 R2 和 IIS 8.5 上遇到问题。我的 asp.net 应用程序在 webconfig 行出现错误,例如无法识别的属性“targetFramework”。
已安装 .NET Framwework 4.5.2 并且来自 iis 的应用程序池正在使用 NET CLR v.40xxx
知道为什么吗?
vb.net - 无法更新 NuGet 包
使用 VS2015 我最近将我使用的插件 ActiveReports 更新为新版本。以前我的应用程序设置为网络框架 4.0,ActiveReports 的新更新至少需要网络框架 4.5,所以我更改了项目以使用该版本。
我现在在构建项目时收到以下错误:
“某些 NuGet 包是使用与当前目标框架不同的目标框架安装的,可能需要重新安装。有关更多信息,请访问http://docs.nuget.org/docs/workflows/reinstalling-packages。受影响的包:Microsoft。 Bcl,Microsoft.Net.Http"
我一直在寻找解决这个问题的各种建议,但都没有奏效。我从工具> NuGet 包管理器> 包管理器控制台尝试的最后一个导致以下消息:
PM> Update-Package 尝试收集与项目“我的项目”相关的多个包的依赖关系信息,针对“.NETFramework,Version=v4.5”尝试解决多个包的依赖关系。解决操作安装多个包 解决成功但未执行任何操作 没有可用的新更新。项目“我的项目”的当前包源中没有可用的包更新
fluent-assertions - Fluent Assertions 目标框架
我已经在单元测试项目上安装了 Fluent Assertions v.3 并且一切都很好,直到我不得不将它更新到 v.5。之后我得到:
Obj 不包含“ShouldBeEquivalentTo”的定义,并且找不到接受“Obj”类型的第一个参数的扩展方法“ShouldBeEquivalentTo”(您是否缺少 using 指令或程序集引用?)
我在https://www.nuget.org/packages/FluentAssertions上看到它需要 .NET 4.5,我在 packages.config 上进行了设置:
在 csproj 上如下:
但我仍然遇到同样的错误。我做错了什么?感谢帮助。
c# - 来自 Swagger 和 CastleWindsor 的 Azure 运行时错误
我在部署应用程序时遇到问题。我会尽力提供尽可能多的信息。
该 api 项目通过 Swashbuckle 和 Castle Windsor 使用了 Swagger。
当通过 SwaggerConfig.cs 在 SwaggerConfig.cs 中启用 Swagger 时,
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
我们得到以下异常:
Method not found: 'Void Swashbuckle.Application.SwaggerDocsConfig.RootUrl(System.Func`2<System.Net.Http.HttpRequestMessage,System.String>)'.
这是完整的注册电话,以防相关
如果我们禁用 swagger(通过删除程序集属性),则应用程序在 Castle Windsor 启动时开始失败,并出现以下错误:
Method 'Create' in Type 'XXX.XXX.XXX.CastleWindsor.WindsorCompositionRoot' from assembly 'xxx.xxx.Backend, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.'
这是 WindsorConfig.cs 的 Configure() 方法
当我们将解决方案中的共享库从 PCL 升级到 .net 标准 2 时,就会出现问题。这反过来意味着我们必须将解决方案中的所有其他项目升级到 .net 4.7.1(解决方案中有一个 UWP 应用程序,这是我们最初的升级目标,这意味着我们必须升级库,但我离题了) ,所以总结一下,这个问题发生在 4.7.1 升级。
该应用程序通过 Bamboo w/ msbuild & msdeploy 部署到 Azure。我们确信二进制文件和 web.config 与开发同步,因为我们已经通过 FTP 手动部署它们以确保它们。在重新上传之前,我通过 FTP 删除了所有二进制文件,以确保没有遗留程序集。
我已经验证 Kudu 中的 Azure 应用程序显示正确的版本以支持 4.7.1,如此处所述:https ://github.com/Azure/app-service-announcements/issues/63
未运行的应用部署到 Azure 中应用服务的虚拟目录 (/api)。主网站 (on /) 是静态的,并使用 Angular 访问 API。
我已经确认 / 和 /api 项目中的 web.config 正在显示
<compilation targetFramework="4.7.1" />
<httpRuntime targetFramework="4.7.1" />
包版本如下(我们在目标框架升级后执行了nuget重新安装):
<package id="Castle.Core" version="3.3.0" targetFramework="net471" />
<package id="Castle.Windsor" version="3.3.0" targetFramework="net471" />
<package id="Castle.Windsor.Lifestyles" version="0.4.0" targetFramework="net471" />
<package id="Swashbuckle" version="5.3.2" targetFramework="net471" />
<package id="Swashbuckle.Core" version="5.3.2" targetFramework="net471" />
当我尝试升级到 4.7.1(对于另一个依赖项)时,我之前在开发环境中遇到过这个问题,但是这次开发工作没有错误,只是现在部署到 Azure 时才失败。此应用服务的 azure 门户中的 .net 框架版本显示 4.7
现在,我认为问题实际上不是我们用来初始化 Swagger 和/或 Castle Windsor 的代码,它更可能与框架版本或不匹配的程序集版本有关,因为该应用程序在我的开发机器上运行而没有错误,但我已经不知道接下来要尝试什么了。
.net - VS Code C# 扩展报告缺少 .NETFramework,Version v4.5
我的意图是在 VS Code (Win10) 中运行我从 GitHub 下载的 C# 项目,因为我没有安装 Visual Studio 的选项。我是第一次这样做,我没有 C# 经验。
首先,我安装了 C# (OmniSharp) 扩展。其次,我打开了项目文件夹。
一旦我这样做,C# 扩展就会尝试启动 OmniSharp 服务器。几秒钟后,我收到错误消息:
日志显示:
[失败]:OmniSharp.MSBuild.ProjectLoader 未找到框架“.NETFramework,Version=v4.5”的参考程序集。要解决此问题,请为此框架版本安装 SDK 或 Targeting Pack,或者将您的应用程序重新定位到已安装 SDK 或 Targeting Pack 的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将用于代替引用程序集。因此,您的程序集可能无法正确定位于您想要的框架。
我已经安装了 .NET Core 2.1 SDK (v2.1.300) 和 .NET Framework 4.7.2 开发包。
跑步dotnet --info
节目:
.NET Core SDK (gemäß "global.json"):版本:2.1.300 提交:adab45bf0c
Laufzeitumgebung:操作系统名称:Windows 操作系统版本:10.0.16299 操作系统平台:Windows RID:win10-x64 基本路径:C:\Program Files\dotnet\sdk\2.1.300\
主机(用于支持):版本:2.1.0 提交:caa7b7e2ba
.NET Core SDK 安装:2.1.300 [C:\Program Files\dotnet\sdk]
.NET Core 运行时安装:Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\ Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
接下来我尝试<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
将 .csproj 文件中的值更改为 v4.7.2 但无济于事。
我不知道出了什么问题。
任何帮助深表感谢。谢谢。