如何解决这个.Net 3.5警告/错误?

时间:2010-01-19 21:30:08

标签: c# .net-3.5 compiler-errors

我有三台机器。一个安装了VS2008另外两个安装了SDK6和Framework3.5(其中一个是构建机器)。

当我使用MSBuild构建我们的应用程序时,所有这些都会收到此警告:

  

C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets:警告MSB3245:无法解析此引用。无法找到程序集“WPFToolkit,Version = 3.5.40128.1,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。

并且构建机器出现了一些错误:

  

scsm \ SCSM.cs(234,13):错误CS1501:否   方法“调用”的重载采用“1”   arguments scsm \ SCSM.cs(235,13):错误   CS1501:方法无过载   'Invoke'采用'1'参数   scsm \ SCSM.cs(304,13):错误CS1501:否   方法“调用”的重载采用“1”   参数scsm \ SCSM.cs(314,13):错误   CS1501:方法无过载   'Invoke'采用'1'参数   scsm \ SCSM.cs(317,13):错误CS1501:否   方法“调用”的重载采用“1”   参数scsm \ SCSM.cs(323,17):错误   CS1501:方法无过载   'Invoke'采用'1'参数   scsm \ SCSM.cs(324,17):错误CS1501:否   方法“调用”的重载采用“1”   参数scsm \ SCSM.cs(325,17):错误   CS1501:方法无过载   'Invoke'采用'1'参数

但是其他机器没有错误地通过。这三台机器的资源相同。

在线搜索但无法找到答案。这里有人可以帮我解决这个问题吗? 感谢

3 个答案:

答案 0 :(得分:3)

  

无法找到程序集“WPFToolkit,Version = 3.5.40128.1,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”。

WPFToolkit不是.net Framework的一部分,而是可以下载的组件。

您是否将WPFToolkit-DLL下载并复制到您的项目可以找到的构建计算机上的某个位置? (在项目引用中设置的某个目录或GAC)


  

scsm \ SCSM.cs(325,17):错误CS1501:方法'Invoke'没有重载需要'1'参数

根据我的经验,这个问题可能意味着您缺少.net Framework 3.5的SP1。

编辑:看到你的代码后,我很确定这是问题所在。您在此处调用的Dispatcher.Invoke(delegate, params object[] args)已添加到Framework 3.5 SP1 中,请参阅the MSDN page of this method

  

受支持者:3.5 SP1,3.0 SP2

答案 1 :(得分:2)

您的计算机似乎缺少WPF Toolkit程序集。要获得最平滑的结果,请将其与源代码一起包含在版本控制系统中,并使用Visual Studio中添加引用对话框中的浏览选项卡添加引用。然后,您可以确定它将在您将来获取源代码的任何计算机上存在并且可以找到。

答案 2 :(得分:0)

WPFToolkit听起来像你可能想安装this(猜测)。

Invoke听起来像是一个不同的dll版本;也许缺少重载或扩展方法。检查构建服务器上的引用相同(或更好:在项目中包含引用)。它可能也是.NET 3.5和.NET 3.5 SP1(或类似版本)之间的区别(但是),但如果没有看到令人讨厌的代码行,很难说清楚。