it-swarm.com.de

Build ist erfolgreich, aber die Veröffentlichung schlägt fehl

Bis vor zwei Tagen konnte ich die Option "Publish Web" von Visual Studio 2010 verwenden, indem Sie mit der rechten Maustaste auf mein Projekt klicken und im Kontextmenü auf die Schaltfläche zum Veröffentlichen klicken. Wenn ich jetzt dasselbe versuche, erhalte ich folgende Ausgabe:

------ 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 ==========

Dies ist während des Versuchs, zu localhost zu veröffentlichen (zu Debugging-Zwecken)

Hier sind die Einstellungen des von mir verwendeten Veröffentlichungsprofils:

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)

Ich habe schon versucht:

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

aber nichts, was ich geändert habe, hat den Fehler behoben.

Jeder Einblick in die Ursachen des Problems wäre sehr dankbar :)

BEARBEITEN:

Das Problem löste sich tatsächlich seit meinem letzten Neustart. Ich muss 6-7 Mal neu gestartet haben, seit sich das Problem zum ersten Mal manifestierte, diesmal jedoch keine Objektreferenznachricht. Hier ist das Log vom Build/Publish jetzt:

------ 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 ==========

Wie ich schon sagte: Keine Ahnung, was sich geändert hat. Ich hatte die DLLs manuell in das virtuelle Verzeichnis der Website verschoben, dann habe ich es heute Morgen nur für Kicks versucht, zu veröffentlichen, und alles hat gut geklappt.

34
p.wilt

Nach meiner Erfahrung kann dies vorkommen, wenn Dateien aus verschiedenen Zweigen Ihrer Quellcodeverwaltung hinzugefügt oder aus ihr entfernt werden und eine unvollständige Zusammenführung die Projektdateistruktur und die tatsächliche Dateistruktur voneinander abweichen lässt.

Dies kann eine von mehreren Optionen sein:

  • Eine Datei wurde gelöscht, aber das Projekt verweist noch darauf. Wird nicht kompiliert, wird nicht veröffentlicht.
  • Eine Datei wurde hinzugefügt, wird aber vom Projekt nicht referenziert. Kann kompilieren, hängt davon ab, ob die Klasse/Methode an anderer Stelle im Projekt/in der Lösung referenziert wird. Wenn kompiliert, wird veröffentlicht.
  • Eine Datei wurde hinzugefügt, die Projektzusammenführung führte jedoch dazu, dass sie mehr als einmal in der Projektliste angezeigt wurde. Wird kompilieren, wird nicht veröffentlicht.

Die Lösung besteht darin, die Quellcodeverwaltungsprotokolle einzusehen und zu versuchen, die fehlerhafte Zusammenführung in die Projektdatei für die oben genannten Probleme zu ermitteln, und dann die Projektdatei entsprechend zu beheben.

35
Oded

Ich stand auch vor demselben Problem, ich habe gerade die gelb markierte Datei aus visuelle Studioprojektlösung entfernt & es funktionierte gut für mich.

16
Anjan Kant

Schließen Sie den obj-Ordner aus dem Projekt aus und veröffentlichen Sie . Das hat bei mir funktioniert

10

Ich hatte dieses Problem kürzlich in Azure veröffentlicht. Am Ende löschte ich alle Dateien im Ordner bin (löschte alle Dateien INNERHALB des Visual Studio Solution Explorer im Ordner bin, lasse den Ordner bin jedoch leer) und erstellte das Projekt neu. Dies schien Visual Studio glücklich zu machen und Azure Publish arbeitete. hoffe das hilft

Das funktionierte für mich: Manuelles Löschen des OBJ-Ordners, Neuerstellen und Veröffentlichen. Irgendwie blieb eine Berechtigung im obj-Ordner hängen, und das Löschen/Neuerstellen des Ordners löste den Fehler.

2
dlchambers

Ich habe den Ordner bin & obj entfernt und auch den Inhalt von inetpub/wwwroot/myapp und das Problem gelöst

2
Dulce Corona

Öffnen Sie die Datei projectname.csproj im Editor und entfernen Sie die Zeile obj\debug\project name.csprojResolveAsseblyReference.cache

1
nativegrip

nothings funktioniert für mich . Löschen von obj und bin file-clean-ändern des Webservice-Namens - Verkürzen des Webservice-Namens.

Aber überhaupt

+ Erweitern Sie Ihre Reference.svcmap im Visual Studio.

+ Referenz aktualisieren.

+ Und lösche gelbe Warnung Datenquellen.

funktioniert bei mir

1
elfekz

Ich war vor kurzem mit dem gleichen Problem konfrontiert ... und habe es tatsächlich nachgeforscht, indem ich die Datei gesucht habe, die fehlte.

Grund für den Fehler: In Visual Studio hatte ich die Datei eingefügt und sie später aus dem Dateisystem gelöscht (jedoch nicht aus Visual Studio). VS hatte immer noch den Verweis auf diese Datei. Nachdem ich die Referenz von VS gelöscht hatte, konnte ich erfolgreich veröffentlichen! 

1
Paul Salvi

Falls dies jemandem hilft, war dies für mein MVC-Projekt in VS 2015 die folgende Datei: Datei System.pubxml.user.__Im Verzeichnis für Veröffentlichungsprofile, einschließlich der Datei, die zu Kompilierungsfehlern führte, aber das Löschen ermöglichte die Veröffentlichung!

0
Cuppachee

ich bin auch auf dieses Problem gestoßen, als ich meine Site veröffentlichte. In meinem Fall wurde die Referenz hinzugefügt, aber im Bin-Ordner war sie nicht vorhanden. Bitte installieren Sie erneut, welche Referenz in der Ausgabe fehlt. Ich hoffe, es hilft

0
saurav singh

Ich habe dies gelöst, indem ich die Datei "packages.config" aus meinem Projekt entfernt habe, die als fehlend markiert wurde. Danach funktionierte Publish einwandfrei.

0
Ron P

Dieses Problem kann auftreten, wenn Sie ein Projekt von einer Lösung zu einer anderen Lösung verschieben oder zu einer anderen Quellcodeverwaltung wechseln.

Einfache Möglichkeit, dieses Problem zu beheben: 

  1. Machen Sie die aktuelle Projektsicherung und entfernen Sie Ihr aktuelles Projekt aus der Lösung. 

  2. Fügen Sie Ihrer Lösung ein neues Projekt hinzu, und fügen Sie Ihre Dateien von der Sicherung ein und erstellen Sie Ihr Projekt neu und fertig. 

0
Ram Balwad

Ich habe alle vorhandenen Veröffentlichungsprofile in Visual Studio -> Lösungs-Explorer -> Mein Projektknoten -> Eigenschaften -> Veröffentlichungsprofile .__ gelöscht. Das Gleiche kann durch Klicken mit der rechten Maustaste auf Projekt in Lösungs-Explorer -> Publizieren -> Registerkarte Profil -> durchgeführt werden Profile verwalten -> Alle Profile entfernen.__ Jetzt laden Sie das relevante Profil von Azure herunter, oder wählen Sie in Ihrem Verzeichnis aus, ob es bereits auf Ihrem Computer gespeichert ist, und wählen Sie es aus . Reinigen Sie das Projekt und erstellen Sie es neu .. _. Nachdem Sie ausgewählt haben, dass das Projekt im Freigabemodus erstellt wurde, haben Sie auch "Veröffentlichung"> "Einstellungen"> "Einstellungen"> "Konfiguration" gewählt.

0
Faran Shabbir

Der Grund dafür ist die Übertragung Ihres Projekts aus einer anderen Umgebung .. Um dieses Problem zu lösen, löschen Sie den Ordner "obj" aus Ihrem Projektverzeichnis sowie den Lösungs-Explorer, indem Sie mit der rechten Maustaste auf den Ordner "obj" klicken.

Anschließend erstellen Sie Ihr Projekt und veröffentlichen es. Es wird normal funktionieren.

0
Vijendra Rana

Benennen Sie den Packages-Ordner einfach in Nugets um. Visual Studio würde automatisch die erforderlichen Pakete abrufen und Build erfolgreich ausführen, und Publish würde ebenfalls funktionieren. 

0
Sanjay Sharma

Ich musste die fehlenden Dateien manuell kopieren und in den BIN-Ordner einfügen. .pbd, .xml Manchmal werden sie nicht kopiert.

0
JoshYates1980

Ich musste das Veröffentlichungsprofil löschen, festlegen und dann das Veröffentlichungsprofil von Grund auf neu erstellen.

0
Jeremy

Ich bin auf ein ähnliches Problem gestoßen, als ich manuell einen Ordner in ein Projekt kopiert habe (in meinem Fall ckeditor). Es war gut gebaut und lief lokal ohne Probleme. Beim Veröffentlichen wurde der Ordner jedoch ignoriert. Es stellte sich heraus ich musste erstellen den leeren Ordner 1. und kopierte dann den Ordnerinhalt. Visual Studio muss wissen, dass das Element erstellt wurde, da es danach beim Veröffentlichen erkannt wurde. 

0
Off The Gold