我们正在使用 Visual Studio 2010 开发一个应用程序。我们所有的项目都设置为具有 x86 平台的 .NET 框架 3.5。
我们正在使用外部库 PDFViewerNET,为此我们从http://code.google.com/p/pdfviewer-win32/downloads/list加载了 .NET 3.5 32 位版本
我们将它的 PDFLibNet.DLL 包含在我们自己的 .NET 3.5 程序集中,它构建得很好。然后我们将生成的程序集 DLL 包含到我们的应用程序项目 (.NET 3.5 x86) 中。该应用程序在 VS 中编译和构建良好。它可以在 VS 中运行和调试,并从驱动器启动(发布配置用于所有构建)。一旦我们从程序集中访问方法,它就可以正常工作。
该应用程序最初是为具有“AnyCPU”平台的 .NET 框架 4.0 开发的。我们迁移回 .NET 3.5 是因为我们计划使用需要 .NET 3.5 的 EMC Documentum 6.7 程序集。但这尚未实施...
现在......我们使用 TeamCity Enterprise 7.1.5(内部版本 24400)进行部署和检查内部版本。构建配置与我们之前使用的 MSBuild .NET 4.0 (Toolset 4.0) x64 设置相得益彰。现在我们不得不切换到 MSBuild .NET 3.5 (Toolset 3.5) x86。
构建运行良好。但是当我们启动生成的应用程序并尝试从程序集(与我们在 VS 中使用的版本相同)访问方法时,它会失败并出现错误
Could not load file or assembly "blahblahblah, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null" or one of its dependencies. An attempt was made to load a
program with an incorrect format
blahblahblah.DLL 是我们自己的程序集,其中包括 PDFLibNet.DLL。所有 DLL 文件都与生成的 EXE 位于同一文件夹中。EXE 为 575KB,而使用 VS 构建时为 593KB...
有任何想法吗?