如果我有一个需要.net 3.0的应用程序,用它制作安装文件的正确方法是什么,它将安装该应用程序,然后安装(激活).net 3.0? 我尝试通过Visual Studio 2008(c#)发布项目,该项目创建了安装程序和.net激活程序,但是当.net 3.0不存在时,它在除我自己的计算机以外 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我被要求配置并弄清楚如何使用 .NET 框架 3.0 让 .NET 盒装框架工作。 我被困在如何解决这个问题上,因为我以前从未见过它,也不知道如何让它工作。
如果有人有想法或已经让这个框架在 3.0 中工作,我们将不胜感激。
我主要一直在寻找使用IServiceProvider
的其他方法,但我想出的唯一解决方案是我必须将所有服务放入一个变量中,并根据错误消息以这种方式注入它
public IServiceProvider ConfigureServices(IServiceCollection services) =>
services
.AddCorrelationIdFluent()
.AddCustomCaching()
.AddCustomOptions(this.configuration)
.AddCustomRouting()
.AddCustomResponseCompression()
.AddCustomStrictTransportSecurity()
.AddCustomHealthChecks()
.AddHttpContextAccessor()
.AddMvcCore()
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
.AddAuthorization()
.AddJsonFormatters()
.AddCustomJsonOptions(this.hostingEnvironment)
.AddCustomCors()
.AddCustomMvcOptions(this.hostingEnvironment)
.Services
.AddCustomGraphQL(this.hostingEnvironment)
.AddCustomGraphQLAuthorization()
.AddProjectRepositories()
.AddProjectSchemas()
.BuildServiceProvider();
这就是错误消息的内容:
从应用程序代码调用“BuildServiceProvider”会导致创建 singleton 服务的附加副本。 考虑替代方案,例如依赖注入服务作为“配置”的参数
注意:我没有在框架中添加任何额外的代码,只是试图让它在 3.0 版中没有错误。
如果有人有任何想法帮助将不胜感激。
我不确定这是否 100% 正确,因为我现在无法对其进行测试,但这是我为使上述代码部分无错误所做的工作。
public void ConfigureServices(IServiceCollection services)
{
_ = services
.AddCorrelationIdFluent()
.AddCustomCaching()
.AddCustomOptions(this.configuration)
.AddCustomRouting()
.AddCustomResponseCompression()
.AddCustomStrictTransportSecurity()
.AddCustomHealthChecks()
.AddHttpContextAccessor()
.AddMvcCore()
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
.AddAuthorization()
.AddCustomJsonOptions(this.hostingEnvironment)
.AddCustomCors()
.AddCustomMvcOptions(this.hostingEnvironment);
_ = services
.AddCustomGraphQL(this.hostingEnvironment)
.AddCustomGraphQLAuthorization()
.AddProjectRepositories()
.AddProjectSchemas();
_ = services.AddMvc()
.AddNewtonsoftJson();
}
一位同事告诉我要取出.BuildServiceProvider
,这就是它不再存在的原因 如果这是错误的或有人知道更好的方法,请告诉我们:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.