我们使用 VS2008 SP1 用 C# 进行编码。我们有一台运行 Team System Server 2008 的服务器,我们用它来进行源代码控制、任务等。server也是我们的构建机器团队建设。这已经运行了很长一段时间了。直到现在。我们得到这些错误信息当尝试构建我们的一个项目时参考 to one 外部装配(这种情况会通过 Team Build 以及物理登录并通过 Visual Studio 进行常规构建时发生):
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets
:警告 MSB3246:已解决的文件有一个
图像不好,没有元数据,或者是
否则无法访问。不能加载
文件或程序集'C:\程序
文件\Syncfusion\Essential
Studio\7.1.0.21\Assemblies\3.5\Syncfusion.XlsIO.Base.dll'
或其依赖项之一。该模块
预计将包含一个集会
显现。
C:\程序
文件\MSBuild\Microsoft\VisualStudio\v9.0\ReportingServices\Microsoft.ReportingServices.targets(24,2):
错误 MSB4062:
“Microsoft.Reporting.RdlCompile”任务
无法从程序集中加载
Microsoft.ReportViewer.Common,
版本=9.0.0.0,文化=中立,
公钥令牌=b03f5f7f11d50a3a。可以
不加载文件或程序集
'微软.ReportViewer.Common,
版本=9.0.0.0,文化=中立,
PublicKeyToken=b03f5f7f11d50a3a' 或
它的依赖项之一。该模块
预计将包含一个集会
显现。确认
声明是正确的,并且
程序集及其所有依赖项是
可用的。
引用的组件
'Syncfusion.XlsIO.Base' 无法
成立。
这些错误针对具有一个有问题的程序集引用的一个项目。当我尝试构建整个解决方案时,当然会因为这个错误而出现更多错误。还有另外两个项目与其他程序集引用也存在相同的问题。我有一个 VS 似乎无法解析的引用程序集列表:
- Microsoft.ReportViewer.Common
- Microsoft.ReportViewer.WinForms
- 同步融合.压缩.基础
- Syncfusion.Core
- Syncfusion.XlsIO.Base
Syncfusion 组件来自第 3 方组件包。另外两个与 Microsoft ReportViewer 组件相关。
这些引用是通过 .NET 选项卡中的“添加引用”窗口添加的,因此我认为这没有任何可疑之处。在程序集引用的属性窗口中,区域性、描述、路径、运行时版本或强名称中没有值。版本显示 0.0.0.0,已解决为 False。我想很明显 VS 无法解析引用。我的问题是为什么???我为这个问题绞尽脑汁。这只发生在服务器上,该解决方案在我的机器和我同事的机器上都构建得很好。装配参考属性在我们的机器上很好。
我努力了卸载 the 3rd 方组件(当然是在服务器上),然后再次重新安装。没有帮助。我尝试过了repair the VS2008安装。没有帮助。试图检索一个早期版本 from 源代码控制(我知道之前已经在服务器上构建过),并且我收到了相同的错误消息。我检查过文件权限,一切似乎都井然有序。我已经没有想法了......
我该如何解决这个问题?
2009 年 2 月 16 日更新:
我已经尝试过比较 ildasm 输出我的电脑和服务器上的 dll 的版本(请参阅我写的相关评论),并且在对我来说似乎是评论的一行中存在一个小差异。我必须承认我根本不明白为什么会有差异,所以也许有人可以向我解释一下?
我也尝试运行病毒扫描在服务器上。没有帮助。试着remove the 参考进而readd通过浏览到磁盘上的 dll 来实现。没用。
2009 年 3 月 17 日更新:
我找到了解决方案!罪魁祸首是Panda Antivirus 的 TruPrevent 模块。禁用模块后,一切正常! =)
我在以下人员的帮助下发现了这一点fuslogvw.exe http://msdn.microsoft.com/en-us/library/e74a18c4%28VS.80%29.aspx以及它生成的日志。谷歌搜索结果,偶然发现这个博客条目。 http://msmvps.com/blogs/carlosq/archive/2007/03/23/the-strange-case-of-error-80131018-loading-a-visual-studio-add-in.aspx。希望这可以帮助其他人。