1

我使用 R. Gieseckes UnmanagedExports dll 完成了一个带有导出方法的程序集。在 VS 2012 中构建这个程序集效果很好。但是使用 FinalBuilder 将程序集构建为更大解决方案的一部分会引发以下错误:

解析 IL:解析 1517 行 IL 耗时 120 毫秒。C:\BuildSource\branches\Standard\Projects\Intf_New\Interfaces\StdInterface\packages\UnmanagedExports.1.2.4.23262\tools\RGiesecke.DllExport.targets(42,5):错误:Der Index,basierend auf 0 (null), muss größer als oder gleich Null sein, und kleiner als die Größe der Argumentenliste。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 严重性,字符串代码,字符串文件名,可空1 startPosition, Nullable1 endPosition, String message, Object[] values) in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport\DllExportNotifier.cs:Zeile 135. bei RGiesecke.DllExport.DllExportNotifier.Notify(Int32 severity, String code, String message, Object[] values) in 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) in d :\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport\Parsing\ILAsm.cs:Zeile 186. bei RGiesecke.DllExport.Parsing.IlAsm.Run(String outputFile, String ilSuffix, CpuPlatform cpu) in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport\Parsing\ILAsm.cs:Zeile 123. bei RGiesecke.DllExport.Parsing.IlAsm.ReassembleFile(String outputFile, String ilSuffix, CpuPlatform cpu) in 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. d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport\DllExportWeaver.cs:Zeile 中的 RGiesecke.DllExport.DllExportWeaver.Run() 81. 中的 RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.Execute() d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:Zeile 243。Parsing.IlAsm.ReassembleFile(String outputFile, String ilSuffix, CpuPlatform cpu) in 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() in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:Zeile 243。Parsing.IlAsm.ReassembleFile(String outputFile, String ilSuffix, CpuPlatform cpu) in 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() in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:Zeile 243。RunIlAsm(IlAsm ilAsm) in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport\DllExportWeaver.cs:Zeile 151. bei RGiesecke.DllExport.DllExportWeaver.Run() in d:\Work\Libraries\RGiesecke.DllExport\ RGiesecke.DllExport\DllExportWeaver.cs:Zeile 81. bei RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.Execute() in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:Zeile 243。RunIlAsm(IlAsm ilAsm) in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport\DllExportWeaver.cs:Zeile 151. bei RGiesecke.DllExport.DllExportWeaver.Run() in d:\Work\Libraries\RGiesecke.DllExport\ RGiesecke.DllExport\DllExportWeaver.cs:Zeile 81. bei RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.Execute() in d:\Work\Libraries\RGiesecke.DllExport\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:Zeile 243。

有人见过这个吗?有什么提示吗?

问候

4

1 回答 1

0

我能想到的只是收集未加载组件的 nugget 包已在项目参考中更新,或者存在 CPU 架构 x86/x64 复杂性。

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

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

于 2013-12-13T23:19:37.457 回答