2010-10-17 3 views
0

Je reçois donc une exception levée que mon projet de test ne peut pas ouvrir l'assembly SQLite. Cependant voici la sortie quand je compile:Classe de test ne se construisant pas pour x86

------ Build started: Project: Budget, Configuration: Debug x86 ------ 
    Budget -> C:\Users\Scott\Desktop\Development\Budget\Budget\Budget\bin\Debug\Budget.exe 
------ Build started: Project: Test, Configuration: Debug Any CPU ------ 
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Data.SQLite". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 
    Test -> C:\Users\Scott\Desktop\Development\Budget\Budget\Test\bin\Debug\Test.dll 
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ========== 

Comme vous pouvez le voir le projet de code se construit bien (semble être parce que son jeu à x86). J'ai cependant défini les deux projets à x86, et enregistré à la fois et reconstruit, et il ne dit toujours pas que Test est en train de construire pour x86, donc nous voyons l'avertissement d'assemblage pour le test et pas l'autre. Comment puis-je obtenir les deux à construire pour x86?

-Scott

Répondre

1

Cela se produira lorsque vous importez un projet qui a été créé dans une version antérieure de VS. Il l'importera pour les configurations Debug | AnyCPU et Release | AnyCPU. L'ajout d'un nouveau projet à la solution crée des configurations supplémentaires: Debug | x86 et Release | x86, les valeurs par défaut pour VS2010. Maintenant, vous avez quatre. Ils ont essayé de trouver une solution pour cela en ajoutant un autre ensemble, Debug | Mixed Platforms et Release | Mixed Platforms. Maintenant vous avez six ans.

Ouch. C'est un peu le bordel. Ce qui est probablement le plus grave, c'est que le nom de la configuration n'est en aucun cas associé au paramètre Target Platform. Vous pouvez le changer mais le nom de la configuration ne change pas. Ce n'était pas vraiment bien pensé.

Résolvez votre problème avec Build + Configuration Manager. Commencez avec configuration = Debug, platform = x86. Notez la colonne Plate-forme, choisissez le projet qui a Any CPU. Cliquez sur la flèche de liste déroulante, Nouveau et choisissez x86. Important: décochez la case "Créer de nouvelles plates-formes de solution". Cochez la case "Construire". Sélectionnez configuration = Libérer et répétez la procédure.

Cela met tout au bon endroit. Vous pouvez vous débarrasser des plates-formes bozo en sélectionnant Modifier dans la liste déroulante de la plate-forme supérieure droite et en utilisant Supprimer. Oh, faites une sauvegarde avant de commencer.

Je ne pense pas que cela résoudra réellement votre problème, vous devriez simplement supprimer la référence d'assemblage SQLite et la rajouter.

+0

le nombre de fois que cela m'a ennuyé avec Visual Studio. Comme c'est exactement ce que je dois faire quand il ne construit pas pour certaines plate-forme, je sais que c'est la bonne réponse +1 :) – Sekhat

+0

J'ai rencontré ce problème; mais jusqu'à ce que j'ouvre la boîte de dialogue plate-forme-édition sur chaque projet une fois que la nouvelle option x86 n'a pas enregistré. Il a affiché dans la grille; mais n'a pas montré dans la liste déroulante. –

Questions connexes