C# 找不到系统数据程序集
我在windows服务项目中引用了C# 找不到系统数据程序集,c#,.net-assembly,system.data,C#,.net Assembly,System.data,我在windows服务项目中引用了System.Data。我一直收到异常: 无法加载文件或程序集“System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。系统找不到指定的文件 我将FusionLog附加到我的代码中,并发现以下内容。对于System.Data只有visual studio在这里查看: 从以下位置加载的程序集管理器:C:\windows\Microsoft.NET\Fra
System.Data
。我一直收到异常
:
无法加载文件或程序集“System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。系统找不到指定的文件
我将FusionLog
附加到我的代码中,并发现以下内容。对于System.Data
只有visual studio在这里查看:
从以下位置加载的程序集管理器:C:\windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
它应该在这里查看(所有其他程序集都是System.Data)
从以下位置加载的程序集管理器:C:\windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
如何将我的System.Data
文件指向正确的位置
我的猜测是
Microsoft Commerce Server
DLL可能正在引用2.0文件夹。确保您的项目设置为.Net Framework 4。如果不这样做,请将其设置为完整配置文件(不仅仅是客户端)如果在解决方案资源管理器中选择引用的程序集,请验证运行时版本是否正确(请参见下图)。如有必要,可以删除引用并重新添加以修复它
此外,如果您使用的是app.config,请确保其目标是正确的运行时版本
将此添加到app.config
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
如果需要在windows服务中加载旧版本的DLL,则必须添加此项。对于web服务,iis会自动处理它,但对于windows服务则不会。@NickLaMarca是客户端上安装的完整框架吗?健全性检查-您能找到文件C:\Program Files(x86)吗\引用Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll?文件夹v4.0.30319安装在我的MachineEyes上我在这里看到System.Data.dll:C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0您的web.config中有没有?我验证了解决方案中所有项目中的所有系统数据dll都具有4.0运行时版本和应用程序配置的目标是4.0。我的.Net 3.5项目也有同样的问题,甚至添加了上述useLegacyV2RuntimeActivationPolicy。但我仍然可以在VisualStudio输出窗口中观察到“System.Data not found”异常,作为调试运行时的第一次意外异常。但是,除此之外,我的应用程序运行正常。