web-dev-qa-db-fra.com

La construction réussit, mais la publication échoue

Jusqu'à il y a deux jours, je pouvais utiliser l'option "Publier sur le Web" de Visual Studio 2010 en cliquant avec le bouton droit de la souris sur mon projet et en cliquant sur le bouton de publication du menu contextuel. Maintenant, lorsque j'essaie de faire la même chose, j'obtiens le résultat suivant:

------ Build started: Project: ELMS, Configuration: Debug Any CPU ------
Build started 8/1/2011 3:08:03 PM.
GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are
up-to-date with respect to the input files.
_CopyOutOfDateSourceItemsToOutputDirectoryAlways:
Copying file from "C:\SVN\TrakNet\trunk\MTS\lib\Newtonsoft.Json.Net35.dll" to 
  "bin\lib\Newtonsoft.Json.Net35.dll".
CopyFilesToOutputDirectory:
  LMS -> C:\SVN\TrakNet\trunk\MTS\bin\LMS.dll

Build succeeded.

Time Elapsed 00:00:00.04
------ Publish started: Project: LMS, Configuration: Debug Any CPU ------
Object reference not set to an instance of an object.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

Ceci est lors d'une tentative de publication sur localhost (à des fins de débogage)

Voici les paramètres du profil de publication que j'utilise:

Publish Method: Web Deploy
Service URL: localhost
Site/application: default web site/ELMS
[x] Mark as IIS application on destination
[x] Leave extra files on destination (do not delete)

J'ai déjà essayé:

- Cleaning/rebuilding the project
- Deleting the bin folder of the project
- Running reg_iis.exe -i
- Reinstalling VS2010

mais rien de ce que j'ai changé n'a corrigé l'erreur.

Toute idée de ce qui pourrait causer le problème serait grandement appréciée :)

MODIFIER:

Le problème s'est résolu dès le dernier redémarrage. Je dois avoir redémarré 6 à 7 fois depuis la première manifestation du problème, mais cette fois-ci, aucun message de référence d'objet. Voici le journal de la construction/publication maintenant:

------ Build started: Project: LMS, Configuration: Debug Any CPU ------
Build started 8/3/2011 9:10:12 AM.
GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
_CopyOutOfDateSourceItemsToOutputDirectoryAlways:
  Copying file from "C:\SVN\TrakNet\trunk\MTS\lib\Newtonsoft.Json.Net35.dll" to "bin\lib\Newtonsoft.Json.Net35.dll".
CopyFilesToOutputDirectory:
  LMS -> C:\SVN\TrakNet\trunk\MTS\bin\LMS.dll

Build succeeded.

Time Elapsed 00:00:00.04
------ Publish started: Project: LMS, Configuration: Debug Any CPU ------
Gather all files from Project items @(IntermediateAssembly). Adding:
bin\LMS.dll to bin\LMS.dll
bin\LMS.pdb to bin\LMS.pdb
Gather all files from Project items @(Content). Adding:
Global.asax;lib\Newtonsoft.Json.Net35.dll;MtsSchemas\MtsSchema.xml;Web.config
Gather all files from Project output (IntermediateSatelliteAssembliesWithTargetPath).
Adding:
Gather all files from Project items
@(ReferenceCopyLocalPaths,ReferenceComWrappersToCopyLocal,ResolvedIsolatedComModules,_DeploymentLooseManifestFile,NativeReferenceFile).
Gather all files from Project items @(AllExtraReferenceFiles). Adding:
Gather all files from Project items
@(_SourceItemsToCopyToOutputDirectoryAlways,_SourceItemsToCopyToOutputDirectory). Adding:
bin\lib\Newtonsoft.Json.Net35.dll
Gather all files from Project items @(_binDeployableAssemblies). Adding:
Publish Pipeline Collect Files Phase
Found The following for Config tranformation:
Web.config
Creating directory "C:\SVN\TrakNet\trunk\MTS\obj\Debug\TransformWebConfig\transformed\".
Publish Pipeline Transform Phase
Creating directory "C:\SVN\TrakNet\trunk\MTS\obj\Debug\CSAutoParameterize\transformed\".
Copying Web.config to obj\Debug\CSAutoParameterize\original\Web.config.
Transforming Source File: C:\SVN\TrakNet\trunk\MTS\Web.config
  Applying Transform File: <?xml version="1.0"?>
        <configuration xmlns:xdt="http://schemas.Microsoft.com/XML-Document-Transform">
          <connectionStrings>
            <add
              connectionString="{% token='$(ReplacableToken_#(parameter)_#(tokennumber))' xpathlocator='name' parameter='$(name)-Web.config Connection String' description='$(name) Connection String used in web.config by the application to access the database.' defaultValue='$(connectionString)' tags='SqlConnectionString' %}"
              xdt:Transform="SetTokenizedAttributes(connectionString)" xdt:SupressWarnings="True" />
          </connectionStrings>
        </configuration>
      Output File: obj\Debug\CSAutoParameterize\transformed\Web.config
    Transformation succeeded
Auto ConnectionString Transformed Web.config into obj\Debug\CSAutoParameterize\transformed\Web.config.
Creating directory "obj\Debug\Package\PackageTmp".
Copying all files to temporary location below for package/publish:
obj\Debug\Package\PackageTmp.
Copying bin\LMS.dll to obj\Debug\Package\PackageTmp\bin\LMS.dll.
Copying bin\LMS.pdb to obj\Debug\Package\PackageTmp\bin\LMS.pdb.
Copying Global.asax to obj\Debug\Package\PackageTmp\Global.asax.
Copying lib\Newtonsoft.Json.Net35.dll to obj\Debug\Package\PackageTmp\lib\Newtonsoft.Json.Net35.dll.
Copying MtsSchemas\MtsSchema.xml to obj\Debug\Package\PackageTmp\MtsSchemas\MtsSchema.xml.
Copying C:\SVN\TrakNet\trunk\MTS\lib\Newtonsoft.Json.Net35.dll to obj\Debug\Package\PackageTmp\bin\lib\Newtonsoft.Json.Net35.dll.
Copying obj\Debug\CSAutoParameterize\transformed\Web.config to obj\Debug\Package\PackageTmp\Web.config.
Publish Pipeline Deploy phase Pre-Deploy CopyAllFilesToOneFolder Stage
Generate source manifest file for Web Deploy package/publish ...
Creating directory "obj\Debug\Database".
Starting Web deployment task from source:manifest(C:\SVN\TrakNet\trunk\MTS\obj\Debug\Package\LMS.SourceManifest.xml) to Destination:auto().
Updating filePath (default web site/LMS\bin\ELMS.dll).
Updating filePath (default web site/LMS\bin\ELMS.pdb).
Updating filePath (default web site/LMS\bin\lib\Newtonsoft.Json.Net35.dll).
Updating filePath (default web site/LMS\lib\Newtonsoft.Json.Net35.dll).
Updating filePath (default web site/LMS\Web.config).
Updating setAcl (default web site/LMS).
Updating setAcl (default web site/LMS).
Successfully executed Web deployment task.
Publish is successfully deployed.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

Comme je le disais: aucune idée de ce qui a changé. J'avais déplacé manuellement les DLL dans le répertoire virtuel du site Web, puis, juste pour le plaisir, j'ai essayé de publier ce matin, et tout s'est bien passé.

34
p.wilt

Selon mon expérience, cela peut se produire lorsque des fichiers sont ajoutés/supprimés de différentes branches de votre contrôle de code source et qu'une fusion imparfaite entraîne une divergence de la structure de fichier du projet et de la structure de fichier réelle.

Cela pourrait être l'une des options suivantes:

  • Un fichier a été supprimé mais le projet le référence toujours. Ne réussira pas à compiler, ne parviendra pas à publier.
  • Un fichier a été ajouté mais n'est pas référencé par le projet. La compilation peut dépendre du fait que la classe/les méthodes soient référencées ailleurs dans le projet/la solution. Si compile, va publier.
  • Un fichier a été ajouté, mais la fusion du projet l'a fait apparaître plusieurs fois dans la liste des projets. Compilera, ne parviendra pas à publier.

La solution consiste à consulter les journaux de contrôle des sources et à identifier la fusion incorrecte dans le fichier de projet pour les problèmes ci-dessus, puis à corriger le fichier de projet en conséquence.

35
Oded

Moi aussi je faisais face au même problème, je viens de retirer le fichier marqué en jaune de la solution de projet Visual Studio & cela a bien fonctionné pour moi.

16
Anjan Kant

Excluez le dossier obj du projet et publiez . Cela a fonctionné pour moi

10
krishna chegonda

Ce numéro a été publié récemment sur Azure. J'ai fini par supprimer tous les fichiers du dossier bin (tous les fichiers supprimés dans Visual Studio Solution Explorer dans le dossier bin, tout en laissant le dossier bin vide) et de reconstruire le projet. Cela semblait rendre Visual Studio heureux et Azure Publier fonctionnait. J'espère que cela t'aides

4

Cela a fonctionné pour moi: supprimez manuellement le dossier obj, reconstruisez, puis publiez. En quelque sorte, une autorisation dans le dossier obj est restée bloquée et la suppression/la recréation du dossier a effacé l'erreur.

2
dlchambers

J'ai supprimé le dossier bin & obj ainsi que le contenu de inetpub/wwwroot/myapp et la résolution de problème

2
Dulce Corona

ouvrez le fichier nomprojet.csproj dans le bloc-notes et supprimez la ligne obj\debug\nom du projet.csprojResolveAsseblyReference.cache

1
nativegrip

rien ne fonctionne pour moi . supprimer obj et bin nom_serveur_nom_fichier_nettoyant_nommer-raccourcir nom_service_web.

Mais du tout,

+ Développez votre Reference.svcmap de visual studio.

+ Référence de mise à jour.

+ Et supprimer yellow warning datasources.

travaille pour moi

1
elfekz

J'ai récemment fait face au même problème… .. Et je l'ai en fait tracé en recherchant le fichier manquant.

Raison de l’erreur: Dans Visual Studio, j’avais inclus le fichier et l’avais ensuite supprimé du système de fichiers (mais pas de Visual Studio). VS avait toujours eu la référence à ce fichier. Donc, une fois que j'ai supprimé la référence de VS, j'ai pu publier avec succès! 

1
Paul Salvi

Au cas où cela aiderait quelqu'un, pour mon projet MVC sous VS 2015, il s'agissait de ce fichier: Fichier System.pubxml.userDans le répertoire du profil de publication, des erreurs de compilation ont été détectées, mais sa suppression a permis la publication!

0
Cuppachee

J'ai résolu ce problème en supprimant le fichier "packages.config" de mon projet, qui était signalé comme manquant. Après cela, Publier a bien fonctionné.

0
Ron P

Ce problème peut être dû au déplacement du projet d'une solution à une autre ou à un autre contrôle de source.

Un moyen simple de résoudre ce problème: 

  1. Effectuez la sauvegarde du projet actuel et supprimez votre projet actuel de la solution. 

  2. Ajouter un nouveau projet à votre solution et inclure vos fichiers de sauvegarde et reconstruire votre projet et terminé. 

0
Ram Balwad

J'ai supprimé tous les profils de publication existants dans visual studio -> Explorateur de solutions -> Noeud Mon projet -> Propriétés -> Publier des profils Vous pouvez également cliquer sur Projet dans l'explorateur de solutions -> Publier -> onglet Profil -> Gérer les profils -> Supprimer tous les profils Téléchargez maintenant le profil approprié depuis Azure ou choisissez-le dans votre répertoire s'il est déjà enregistré sur votre ordinateur et choisissez-le . Nettoyez et reconstruisez le projet . Assurez-vous que vous ' J'ai choisi le projet est construit en mode de publication et vous avez également choisi "Publier" Publier -> Paramètres -> ConfigurationMaintenant Publier, cela a fonctionné pour moi.

0
Faran Shabbir

La cause en est le transfert de votre projet depuis un environnement différent ..__ Pour le résoudre, supprimez le dossier "obj" de votre répertoire de projet ainsi que de la solution Explorer par un clic droit sur le dossier "obj".

Après cela, construisez votre projet et publiez-le. Cela fonctionnera normalement.

0
Vijendra Rana

Il suffit de renommer le dossier Packages de Nugets. Visual Studio obtiendrait automatiquement les packages requis et la construction réussirait et Publier fonctionnerait également. 

0
Sanjay Sharma

J'ai dû copier et coller manuellement les fichiers manquants demandés par VS dans le dossier BIN. .pbd, .xml Parfois, ils ne copient pas.

0
JoshYates1980

Je devais supprimer le profil de publication, valider, puis recréer le profil de publication à partir de zéro.

0
Jeremy

J'ai rencontré un problème similaire lorsque j'ai copié manuellement un dossier dans un projet (dans mon cas ckeditor). Il a bien fonctionné et a fonctionné localement sans aucun problème. Cependant, lors de la publication, le dossier a été ignoré. Il s'est avéré que je devais créer le premier dossier vide, puis le copier dans le contenu du dossier. Visual Studio doit savoir que l'élément a été créé, car il a été reconnu lors de la publication. 

0
Off The Gold