asp.net - route - La compilación tiene éxito, pero la publicación falla
tag helpers asp net core (15)
En mi experiencia, esto puede suceder cuando se agregan / eliminan archivos de diferentes ramas del control de origen y una fusión imperfecta hace que la estructura del archivo del proyecto y la estructura real del archivo diverjan.
Esta podría ser una de varias opciones:
- Se eliminó un archivo pero el proyecto aún lo hace referencia. No podrá compilar, no podrá publicar.
- Se agregó un archivo pero el proyecto no lo menciona. Puede compilar, depende de si la clase / métodos están referenciados en otra parte del proyecto / solución. Si compila, publicará.
- Se agregó un archivo, pero la fusión del proyecto hizo que apareciera más de una vez en la lista del proyecto. Compilará, no publicará.
La solución es mirar los registros de control de origen y tratar de identificar la combinación incorrecta del archivo de proyecto para los problemas anteriores, y luego corregir el archivo de proyecto en consecuencia.
Hasta hace dos días, pude usar la opción "Publicar Web" de Visual Studio 2010 haciendo clic derecho en mi proyecto y haciendo clic en el botón Publicar en el menú contextual. Ahora, cuando trato de hacer lo mismo, obtengo el siguiente resultado:
------ 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 ==========
Esto es al intentar publicar en el host local (para fines de depuración)
Aquí están las configuraciones del perfil de publicación que estoy usando:
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)
Ya he intentado:
- Cleaning/rebuilding the project
- Deleting the bin folder of the project
- Running reg_iis.exe -i
- Reinstalling VS2010
pero nada de lo que he cambiado ha solucionado el error.
Cualquier idea sobre lo que podría estar causando el problema sería muy apreciada :)
EDITAR:
El problema en realidad se resolvió a partir de mi último reinicio. Debo haber reiniciado 6-7 veces desde que el problema se manifestó por primera vez, pero esta vez no hay ningún mensaje de referencia de objeto. Aquí está el registro de la compilación / publicación ahora:
------ 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 ==========
Como dije: no tengo idea de qué cambió. Había estado moviendo manualmente las DLL al directorio virtual del sitio web, y luego solo por las patadas que intenté publicar esta mañana, y todo salió bien.
Esto funcionó para mí: eliminar manualmente la carpeta obj, reconstruir y luego publicar. De alguna manera, algunos permisos en la carpeta obj se atascaron, y eliminar / volver a crear la carpeta borró el error.
Excluya la carpeta obj del proyecto y publíquela. Esto funcionó para mí
La causa de esto es la transferencia de su proyecto desde un entorno diferente. Para resolverlo, elimine la carpeta "obj" del directorio de su proyecto y del explorador de soluciones haciendo clic con el botón derecho en la carpeta "obj".
Después de eso crea tu proyecto y publícalo. Funcionará normalmente
Me encontré con un problema similar cuando manualmente copié una carpeta en un proyecto (en mi caso ckeditor). Construyó bien y funcionó localmente sin problemas. Sin embargo, cuando se publicó la carpeta fue ignorado. Resulta que tuve que crear la carpeta vacía primero y luego copiar en el contenido de la carpeta. Visual Studio necesita saber que el elemento fue creado, porque luego fue reconocido al momento de la publicación.
Quité la carpeta bin y obj y también el contenido de inetpub / wwwroot / myapp y solucioné el problema
Recientemente me enfrenté al mismo problema. Y lo realicé buscando el archivo que faltaba.
Motivo del error: en el estudio visual, incluí el archivo y luego lo eliminé del sistema de archivos (pero no del estudio visual). VS todavía tenía la referencia a ese archivo. Entonces, una vez que eliminé la referencia de VS, ¡pude publicar con éxito!
Resolví esto eliminando el archivo "packages.config" de mi proyecto, que se marcó como faltante. Después de eso, Publish funcionó bien.
Simplemente cambie el nombre de la carpeta Paquetes de Nugets. Visual Studio obtendría automáticamente los paquetes requeridos y la compilación tendría éxito y Publish también funcionaría.
También me enfrenté al mismo problema, simplemente eliminé el archivo marcado de amarillo de la solución de proyecto de estudio visual y funcionó bien para mí.
Tuve este problema recientemente publicando en Azure. Terminé borrando todos los archivos en la carpeta bin (eliminé todos los archivos dentro del explorador de solución visual studio en la carpeta bin, pero dejé vacía la carpeta bin) y reconstruí el proyecto. Esto pareció hacer que el estudio visual fuera feliz y la publicación azul funcionó. espero que esto ayude
Tuve que copiar y pegar manualmente los archivos faltantes que VS pedía en la carpeta BIN. .pbd, .xml Algunas veces no se copian.
abra el archivo projectname.csproj en el bloc de notas y elimine la línea obj / debug / project name.csprojResolveAsseblyReference.cache
nada funciona para mí. eliminar obj y bin nombre de servicio web de webservice-shorten de limpiar archivos.
Pero en absoluto,
+ Amplíe su Reference.svcmap desde Visual Studio.
+ Actualizar referencia.
+ Y borre los datasources de advertencia amarillos .
funciona para mi
Este problema puede deberse al traslado del proyecto de una solución a otra o al traslado a otro control de origen.
Manera simple de resolver este problema:
Tome la copia de seguridad del proyecto actual y elimine su proyecto actual de la solución.
Agregue un nuevo proyecto a su solución e incluya sus archivos desde la copia de seguridad y reconstruya su proyecto y listo.