我正在构建服务架构应用程序。当我创建一个项目并运行它工作正常。但是当我在Api控制器中注入一个服务时,它给了我这个错误,我试图解决它,但还没有成功。
System.BadImageFormatException 无法加载文件或程序集“dotnet-aspnet-codegenerator-design'或其中一个依赖项。试图加载格式不正确的程序。
我添加了服务
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new ServiceInstanceListener[]
{
new ServiceInstanceListener(serviceContext =>
new KestrelCommunicationListener(serviceContext, "ServiceEndpoint", (url, listener) =>
{
ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting Kestrel on {url}");
return new WebHostBuilder()
.UseKestrel()
.ConfigureServices(
services => services
.AddSingleton<StatelessServiceContext>(serviceContext)
.AddScoped(typeof(ISendMessage), typeof(SendMessage))
)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
.UseUrls(url)
.Build();
}))
};
}
答案 0 :(得分:2)
您的服务或其任何依赖项可能都是针对 x86平台。
要解决此问题,您必须强制您的服务在 x64 上运行和/或替换 x64 的所有 x86 依赖项。
如果您正在运行dotnet-core,请确保同时安装了x64工具。
您也可以尝试删除项目中Microsoft.VisualStudio.Web.CodeGeneration.Design
的引用,如上所述here
这些SO问题可能会为您提供更多信息:
service fabric system badimageformatexception
badimageformatexception when migrating from aspnet core 1.1 to 2.0
答案 1 :(得分:2)
这是我们前面遇到的一个问题,当你尝试添加asp.net核心控制器时会出现这个问题。出于某种原因,visual studio添加了对&#34; Microsoft.VisualStudio.Web.CodeGeneration.Design&#34;的引用。
答案 2 :(得分:1)