9
votes

Visual Studio 2013 appelle 32 bits Aspnet_Compiler au lieu de 64 bits

Ma solution contient des projets .NET et l'un d'entre eux est un projet ASP.NET MVC, que j'essaie de publier. Toutes les configurations sont réglées correctement, x32 et x64, non d'entre elles est définie sur AnyCPu.

problème:

Si j'essaie de publier le projet comme 32 bits, tout va bien, tout va bien , mais essayer de publier en mode 64 bit échoue avec une erreur: xxx

ce que j'ai essayé et remarqué:

Depuis vs 2013, Msbuild fait partie de VS et non de la framework .NET comme avant. Si je construis simplement la solution en mode x64, les fichiers 32 bits msbuild "c: \ programme (x86) \ msbuild \ 12.0 \ bin \ msbuild.exe" est Runnig en premier et il lance le 64 bits msbuild "C: \ Fichiers de programme (x86) \ msbuild \ 12.0 \ bin \ amd64 \ msbuild.exe" SO Construction normale sans publication fonctionne simplement.

mais, si je choisis Publier , le 32bit Msbuild fonctionne en premier, puis il lance le 32 bit aspnet_compiler c: \ windows \ microsoft.net \ framework64 \ v4 .0.30319 \ aspnet_compiler.exe et non le 64 bit, ce qui provoque une erreur que j'ai mentionnée ci-dessus.

La seule solution de contournement que j'ai trouvée jusqu'à présent est de remplacer le xxx

avec un 64 bits un xxx

question:

Y a-t-il une meilleure solution (légale) pour mon problème? Cela ressemble à un bogue dans vs


4 commentaires

Fichier le bogue sur Connect: connect.microsoft.com/visualstudio


@JeSehouwing merci pour votre idée connect.microsoft.com/visualstudio/feedback/Détails/808519/...


C'est une blague, n'est-ce pas? Toute la transition de VS 2010 -> 2012 -> 2013 me donne de tels maux de tête et je me suis toujours en difficulté pour obtenir tout mon projet WebForme ASP.NET WebForms et MVC pour créer, exécuter et déployer correctement. En plus de la prise en charge des outils de données SQL desastreux pour VS 2013. Où se déroule la MS?


@OVM Oui, j'aime beaucoup de telles blagues :). N'hésitez pas à upérer ici et surtout ici connect.microsoft.com/visualstudio/feedback/Détails/808519/...


3 Réponses :


1
votes

J'ai exactement le même problème.

Vous pouvez créer des fichiers BAT pour remplacer l'EXE avant de commencer votre publication. ou Ou vous pouvez écrire une chauve-souris qui appelle directement l'aspnet_compiler.exe directement et la publie sans l'interface utilisateur : -)


0 commentaires

8
votes

Ajoutez cette ligne au fichier .csproj dans un Propertygroup code> Neud pour la configuration de construction que vous ciblez (ou utilisez le groupe propérisse code> qui n'a pas de cible pour cibler Tous les modes de libération).

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
   <AspnetCompilerPath>$(windir)\Microsoft.NET\Framework64\v4.0.30319</AspnetCompilerPath>
</PropertyGroup>


1 commentaires

Merci, nous avons dû écrire nos propres lots de construction, l'essayera plus tard avec le nouveau projet, à moins que MicserSost ne l'ait corrigé.



1
votes

Ajoutez cette ligne au fichier .pubxml (Solution d'arborescence \ Project \ Propriétés \ PublishProfiles \ .pubxml) Dans un nœud de propriété pour la configuration de Publish. Par exemple: xxx


0 commentaires