我正在尝试使用Visual Studio 2008为LINQ IQueryable Toolkit构建测试项目,但它没有构建,因为它以“退出代码9009”退出。
来源位于:http://iqtoolkit.codeplex.com/releases/view/40005
我该如何解决这个问题?
答案 0 :(得分:1)
我使用Visual Studio 2010构建它,并收到错误消息,指出我缺少System.Data.SQLite
和MySql.Data.MySqlClient
命名空间。因此,我首先要确保您的计算机上有这些DLL,并且已将相应的引用添加到项目中。
完整的错误消息为:
命令 “C:\用户\罗伯特\下载\ IQToolkit v0.17b \来源\测试\ CopyProviders.cmd 斌\调试\ C:\用户\罗伯特\下载\ IQToolkit v0.17b \ Source \ Test \“退出代码 9009。
文件夹CopyProviders.cmd
中的文件C:\Users\Robert\Downloads\IQToolkit v0.17b\Source\Test\
包含以下内容:
erase %2%1IQToolkit.Data.*.dll
CALL %2CopyProvider.cmd Access %1 %2
CALL %2CopyProvider.cmd SqlClient %1 %2
CALL %2CopyProvider.cmd SqlServerCe %1 %2
CALL %2CopyProvider.cmd MySqlClient %1 %2
CALL %2CopyProvider.cmd SQLite %1 %2
CopyProvider.cmd
文件包含以下内容:
if exist %3..\IQToolkit.Data.%1\%2IQToolkit.Data.%1.dll xcopy /C /Y %3..\IQToolkit.Data.%1\%2IQToolkit.Data.%1.dll %3%2
这一切都来自Pre-build event command line
,可以在Build Events
项目的Properties
对话框的Test
部分找到。内容如下:
$(ProjectDir)CopyProviders.cmd $(OutDir) $(ProjectDir)
要使项目构建,您只需从“属性”对话框中删除该行,项目就可以正常构建。
很明显,在构建过程中会发生一些文件复制,而且这个文件复制与IQToolkit的测试过程有关。似乎IQToolkit输出DLL被复制到每个提供程序子目录。如果要运行测试套件,可以手动执行此文件复制。
无论如何,它似乎确实是一个小错误。我会让IQToolkit的人知道它。
答案 1 :(得分:1)
只需将活动更改为:
"$(ProjectDir)CopyProviders.cmd" "$(OutDir)" "$(ProjectDir)"
这可以解决这个问题。