使用FinalBuilder构建程序集时出现非托管导出错误

时间:2013-12-13 16:38:11

标签: c# build msbuild unmanaged finalbuilder

我使用R. Gieseckes UnmanagedExports dll完成了导出方法的汇编。在VS 2012中构建此程序集非常有效。但是将组件构建为一部分 使用FinalBuilder的更大解决方案会引发以下错误:

  

解析IL:解析1517行IL需要120 ms。   C:\ BuildSource \ branches \ Standard \ Projects \ Intf_New \ Interfaces \ StdInterface \ packages \ UnmanagedExports.1.2.4.23262 \ tools \ RGiesecke.DllExport.targets(42,5):error:Der Index,basierend auf 0(null), mussrößersalsoder gleich Null sein,und kleiner als dieGrößederArgumentenliste。   bei System.Text.StringBuilder.AppendFormat(IFormatProvider provider,String format,Object [] args)   bei System.String.Format(IFormatProvider provider,String format,Object [] args)   bei RGiesecke.DllExport.DllExportNotifier.Notify(Int32严重性,字符串代码,字符串fileName,Nullable 1 startPosition, Nullable 1 endPosition,String message,Object [] values)在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport中\ DllExportNotifier.cs:Zeile 135。   bei RGiesecke.DllExport.DllExportNotifier.Notify(Int32 severity,String code,String message,Object [] values)在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport \ DllExportNotifier.cs:Zeile 119。   bei RGiesecke.DllExport.Parsing.IlAsm.RunLibTool(CpuPlatform cpu,String fileName,String directory)在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport \ Parsing \ ILAsm.cs:Zeile 212。   bei RGiesecke.DllExport.Parsing.IlAsm.RunCore(CpuPlatform cpu,String fileName,String ressourceParam,String ilSuffix)在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport \ Parsing \ ILAsm.cs:Zeile 186。   bei RGiesecke.DllExport.Parsing.IlAsm.Run(String outputFile,String ilSuffix,CpuPlatform cpu)在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport \ Parsing \ ILAsm.cs:Zeile 123。   bei RGiesecke.DllExport.Parsing.IlAsm.ReassembleFile(String outputFile,String ilSuffix,CpuPlatform cpu)在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport \ Parsing \ ILAsm.cs:Zeile 75。   bei RGiesecke.DllExport.DllExportWeaver.RunIlAsm(IlAsm ilAsm)在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport \ DllExportWeaver.cs:Zeile 151。   bei RGiesecke.DllExport.DllExportWeaver.Run()在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport \ DllExportWeaver.cs:Zeile 81。   bei RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.Execute()在d:\ Work \ Libraries \ RGiesecke.DllExport \ RGiesecke.DllExport.MSBuild \ ExportTaskImplementation.cs:Zeile 243。

之前见过这个的人?任何提示?

此致

1 个答案:

答案 0 :(得分:0)

所有我能想到的是,未加载组件的块包已在项目引用中更新,或者存在CPU架构x86 / x64并发症。

看起来你有d:\ Work \ Libraries \和C:\ BuildSource \ branches \目录的组合,你的项目文件中可能有意外的链接硬编码到不同的目录而不是使用相对引用。看看*。* proj文件和提示路径。

有时我在构建目录中打开VS解决方案并检查编译问题。 确保每次都使用干净的构建目录。尝试在非开发机器上运行Finalbuilder,看看你可以构建它的程度。我发现我有很多隐式链接,因此在构建解决方案之前,我必须升级我的存储库以包含它们或使用Nugget操作。