2010-06-23 15 views
0

Tenez vos armes à feu! J'ai vérifié pour voir si toutes les sorties du projet sont définies à la même architecture de processeur (dans ce cas, x64). Elles sont. Alors qu'est-ce que j'essaie de faire?System.BadImageFormatException pour CustomAction dans le projet d'installation de Visual Studio 2010

  1. A écrit un plugin pour Autodesk Revit Architecture 2011 x64
    • cibles .NET 3.5
    • x64
  2. créé un projet d'installation
  3. créé une action personnalisée (RegisterRevit2011Addin) pour l'enregistrement plugin avec Revit en utilisant une DLL fournie (RevitAddInUtility.dll)
    • cibles .NET 3.5
    • x64
  4. ajouté action personnalisée au projet d'installation, construire, installer

Ceci est le message d'erreur que je reçois:

Erreur 1001. Une exception s'est produite lors de l'initialisation de l'installation: System.BadImageFormatException: Impossible de charger le fichier ou l'assemblage 'RegisterRevit2 011, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null 'ou un de ses dépendances. Une tentative de chargement d'un programme avec un format incorrect a été effectuée.

Juste pour être sûr, je créé une application simple test de la console:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var register = new RegisterRevit2011Addin.RegisterAddinCustomAction(); 
      Console.WriteLine(register); 
      register.Context = new System.Configuration.Install.InstallContext(); 
      register.Context.Parameters.Add("assemblypath",  typeof(Program).Assembly.Location); 
      register.Install(new Dictionary<string, string>()); 
      Console.ReadLine(); 
     } 
    } 
} 

Je compilé ce x64 ciblage et .NET 3.5 - voilà, ça marche! Donc je peux maintenant supposer que l'erreur se trouve quelque part dans le projet d'installation. J'ai défini la plate-forme cible dans les propriétés de projets d'installation et également défini la condition de lancement sur 3.5.

Intéressant: Quand je vérifie le résultat setup.exe avec dumpbin /headers, il m'informe que c'est un processus x86! Je suis assez sûr que tout cela a fonctionné avant-hier, donc je suis un peu inquiet j'ai dérangé mon système d'une manière ou d'une autre. Des idées?

Répondre