Ich hatte ein paar Contents geändert zu Nones. Ich denke, es ist passiert, als ich bei der Konvertierung in Razor Dateien von .ascx in .cshtml umbenannt habe. Durch manuelles Zurücksetzen wurden einige meiner Bereitstellungsprobleme behoben. Ich bin froh, dass ich das gefunden habe.
Keine - Die Datei ist nicht in der Projektausgabegruppe enthalten und wird beim Erstellungsprozess nicht kompiliert. Ein Beispiel ist eine Textdatei, die Dokumentation enthält, z. B. eine Readme-Datei.
Inhalt - Die Datei wird nicht kompiliert, sondern ist in der Ausgabegruppe Inhalt enthalten. Diese Einstellung ist beispielsweise der Standardwert für eine .htm- oder eine andere Art von Webdatei.
Vielen Dank, ich hatte Probleme, diese Referenz zu finden.
Emmett
Hilfreich, aber warum überhaupt ein "Keine" -Element, wenn die Datei nicht in die Ausgabe aufgenommen werden soll? Was ist der Punkt?
JimH44
1
@ JimH44 <Keine> Elemente werden häufig verwendet, um Dateien speziell in das Ausgabeverzeichnis zu kopieren, obwohl sie standardmäßig nicht in der Ausgabegruppe enthalten sind . Wenn Sie für eine <None> -Datei "In Ausgabeverzeichnis kopieren" -> "Immer kopieren" auswählen, wird diese kopiert, und der zur .csproj-Datei des Projekts hinzugefügte Eintrag enthält einen <None> -Eintrag für die Datei.
Auffälliger Compiler
3
Was ist dann der Unterschied zwischen einer <None> -Datei mit "In Ausgabeverzeichnis kopieren" -> "Immer kopieren" und einer <Inhalt> -Datei mit "In Ausgabeverzeichnis kopieren" -> "Immer kopieren"?
Hashtabelle
30
Ein Unterschied besteht darin, wie sie veröffentlicht werden. "Keine" Elemente werden nicht in eine Veröffentlichung aufgenommen, "Inhalt" -Elemente jedoch. Zum Beispiel im Dialogfeld "Anwendungsdateien" auf der Registerkarte "Veröffentlichen".
Nicht wahr. Zumindest im neuen Punktnetz cli. Wenn Sie ein Element als "Keine" mit einem CopyToOutputDirectorySatz deklariert haben , wird truees am dotnet publish
Uhr
13
Ich bin nicht 100% sicher (ich habe die MSDN-Beschreibung der Build Action- Eigenschaft gelesen ), aber nur das Kopieren dieser Antwort von MSDN nach StackOverflow beantwortet die Frage für mich nicht vollständig.
Der Unterschied zwischen " Keine" und " Inhalt" wirkt sich nur auf Webprojekte aus. Für ein Befehlszeilenprojekt, ein WinForm-Projekt oder ein UnitTest-Projekt (in meinem Fall) usw. Keine und Inhalt haben kein unterschiedliches Verhalten.
MSDN: "Projektausgabegruppe" oder "Inhaltsausgabegruppe" nur Begriffe, die in einem Webprojekt verwendet werden, richtig?
Wie Sie sagen, scheint Nonevs Contentnur Auswirkungen auf den Veröffentlichungsschritt zu haben , nicht auf den Erstellungsschritt . Für den Build-Schritt CopyToOutputDirectorykann anscheinend entweder gesetzt werden, und das steuert, ob die Datei vom Build-Schritt kopiert wird. Es scheint auch seltsam, dass standardmäßig T4-Vorlagen als ContentElemente und nicht als Elemente hinzugefügt Nonewerden.
Christopher King
8
In meiner Situation hatte meine MSBuild-Datei eine ItemGroupfür Bildressourcen, die wie folgt aussah:
Während mein Projekt gut lief, fragte ich mich, warum ich eine Mischung aus Elementen Contentund NoneElementen vom Typ Element in meinem hatte ItemGroup. Dieser MSDN-Artikel (für Visual Studio 2010) gab mir die Anleitung, nach der ich gesucht habe:
Beachten Sie, dass der Ressourceneditor beim Hinzufügen eines Bilds die Build-Aktion auf Keine setzt , da die RESX-Datei auf die Bilddatei verweist. Während der Erstellung wird das Image in die aus der .resx-Datei erstellte .resources-Datei gezogen. Auf das Bild kann dann einfach über die stark typisierte Klasse zugegriffen werden, die automatisch für die .resx-Datei generiert wird. Daher sollten Sie diese Einstellung nicht in " Eingebettete Ressource" ändern , da dies das Bild zweimal in die Assembly einschließen würde.
Auflösung: Mit dieser Führung, mit einem Texteditor, änderte ich die ContentArt Artikel Elemente None.
Eine Übersicht über MSBuild-Elemente finden Sie in diesem MSDN-Artikel .
Ich habe ein Projekt, das keine kompilierbaren Elemente enthält (es speichert HTML und Javascript für Jasmin-Unit-Tests).
Eines Tages hörte meine Lösung (die das Projekt enthielt) auf zu kompilieren und sagte "Das Ziel" Build "existiert nicht im Projekt".
Ich habe einen Import hinzugefügt, um den Compiler einzuschalten. Dieser funktionierte auf meinem Computer einwandfrei, konnte jedoch msbuild auf dem Build-Server nicht verwenden.
Sie benötigen None in einer Vorlagenprojektdatei, um Dateien einzuschließen, die Sie in der .vstemplate definiert haben. Andernfalls gehen sie beim Erstellungs- und Übersetzungsprozess verloren. Sie bleiben in dem temporären Ordner zurück, in dem alles erstellt wird, und werden kurz darauf gelöscht.
In meinem Fall ist .Pubxml eine dieser Dateien in der Liste " Keine" . Es ist nicht für die Erstellung von Lösungen oder als statische Datei für Webprojekte gedacht. Um die Site jedoch in Azure zu veröffentlichen, sind die Konfigurationen darin enthalten.
Gemäß Microsoft-Artikel sind dies die Haupttypen, die wir unter .csproj- Datei-Tags sehen:
Keine - Die Datei ist nicht in der Projektausgabegruppe enthalten und wird beim Erstellungsprozess nicht kompiliert. Ein Beispiel ist eine Textdatei, die Dokumentation enthält, z. B. eine Readme-Datei.
Kompilieren - Die Datei wird in die Build-Ausgabe kompiliert. Diese Einstellung wird für Codedateien verwendet.
Inhalt - Die Datei wird nicht kompiliert, sondern ist in der Ausgabegruppe Inhalt enthalten. Diese Einstellung ist beispielsweise der Standardwert für eine .htm- oder eine andere Art von Webdatei.
Eingebettete Ressource - Diese Datei ist als DLL oder ausführbare Datei in die Ausgabe des Hauptprojekts eingebettet. Es wird normalerweise für Ressourcendateien verwendet.
Bitte kommentieren Sie hier, wenn etwas irreführend oder nicht klar ist. Nur eine Abwärtsabstimmung hilft mir nicht, es besser zu verbessern. Danke im Voraus.
krishna kanth
1
Ich habe häufig die Fehlermeldung erhalten: Der Elementname "Keine" für "Eigenschaften \ PublishProfiles \ FolderProfile.pubxml" sollte "Inhalt" sein. in meinem Asp.Net-Projekt auf Bamboo, und manchmal kann der Build das Problem nur beheben, also weiß ich nicht, was genau das Problem ist
Bochen Lin
Hallo @BochenLin, die Details, die Sie hier erwähnt haben, sind etwas spärlich. Können Sie versuchen, hier weitere Details anzugeben oder eine neue Frage mit vollständigen Problemdetails und Screenshot zu posten, wenn möglich [und dann den Fragenlink hier teilen].
krishna kanth
0
Inhaltsdateien sind nicht in einem Build enthalten, sondern in einer Veröffentlichung.
Keine Dateien sind in einem Build oder einer Veröffentlichung enthalten, es sei denn, sie werden von Ihnen auf diese Weise konfiguriert. Beispielsweise führt eine Einstellung "In Ausgabeverzeichnis kopieren" von "Immer" oder "Neu" dazu, dass sie sowohl in einen Build als auch in eine Veröffentlichung aufgenommen werden.
Content
s geändert zuNone
s. Ich denke, es ist passiert, als ich bei der Konvertierung in Razor Dateien von .ascx in .cshtml umbenannt habe. Durch manuelles Zurücksetzen wurden einige meiner Bereitstellungsprobleme behoben. Ich bin froh, dass ich das gefunden habe.Antworten:
Der MSDN-Artikel zur Build-Aktionseigenschaft erläutert die Unterschiede.
quelle
Ein Unterschied besteht darin, wie sie veröffentlicht werden. "Keine" Elemente werden nicht in eine Veröffentlichung aufgenommen, "Inhalt" -Elemente jedoch. Zum Beispiel im Dialogfeld "Anwendungsdateien" auf der Registerkarte "Veröffentlichen".
quelle
CopyToOutputDirectory
Satz deklariert haben , wirdtrue
es amdotnet publish
Ich bin nicht 100% sicher (ich habe die MSDN-Beschreibung der Build Action- Eigenschaft gelesen ), aber nur das Kopieren dieser Antwort von MSDN nach StackOverflow beantwortet die Frage für mich nicht vollständig.
Der Unterschied zwischen " Keine" und " Inhalt" wirkt sich nur auf Webprojekte aus. Für ein Befehlszeilenprojekt, ein WinForm-Projekt oder ein UnitTest-Projekt (in meinem Fall) usw. Keine und Inhalt haben kein unterschiedliches Verhalten.
MSDN: "Projektausgabegruppe" oder "Inhaltsausgabegruppe" nur Begriffe, die in einem Webprojekt verwendet werden, richtig?
quelle
None
vsContent
nur Auswirkungen auf den Veröffentlichungsschritt zu haben , nicht auf den Erstellungsschritt . Für den Build-SchrittCopyToOutputDirectory
kann anscheinend entweder gesetzt werden, und das steuert, ob die Datei vom Build-Schritt kopiert wird. Es scheint auch seltsam, dass standardmäßig T4-Vorlagen alsContent
Elemente und nicht als Elemente hinzugefügtNone
werden.In meiner Situation hatte meine MSBuild-Datei eine
ItemGroup
für Bildressourcen, die wie folgt aussah:Während mein Projekt gut lief, fragte ich mich, warum ich eine Mischung aus Elementen
Content
undNone
Elementen vom Typ Element in meinem hatteItemGroup
. Dieser MSDN-Artikel (für Visual Studio 2010) gab mir die Anleitung, nach der ich gesucht habe:Auflösung: Mit dieser Führung, mit einem Texteditor, änderte ich die
Content
Art Artikel ElementeNone
.Eine Übersicht über MSBuild-Elemente finden Sie in diesem MSDN-Artikel .
quelle
Ich habe ein Projekt, das keine kompilierbaren Elemente enthält (es speichert HTML und Javascript für Jasmin-Unit-Tests).
Eines Tages hörte meine Lösung (die das Projekt enthielt) auf zu kompilieren und sagte "Das Ziel" Build "existiert nicht im Projekt".
Ich habe einen Import hinzugefügt, um den Compiler einzuschalten. Dieser funktionierte auf meinem Computer einwandfrei, konnte jedoch msbuild auf dem Build-Server nicht verwenden.
Ich habe dann eine Zeile von geändert
zu
und es funktionierte auch auf dem Build-Server.
quelle
Sie benötigen None in einer Vorlagenprojektdatei, um Dateien einzuschließen, die Sie in der .vstemplate definiert haben. Andernfalls gehen sie beim Erstellungs- und Übersetzungsprozess verloren. Sie bleiben in dem temporären Ordner zurück, in dem alles erstellt wird, und werden kurz darauf gelöscht.
quelle
In meinem Fall ist .Pubxml eine dieser Dateien in der Liste " Keine" . Es ist nicht für die Erstellung von Lösungen oder als statische Datei für Webprojekte gedacht. Um die Site jedoch in Azure zu veröffentlichen, sind die Konfigurationen darin enthalten.
Gemäß Microsoft-Artikel sind dies die Haupttypen, die wir unter .csproj- Datei-Tags sehen:
quelle
Inhaltsdateien sind nicht in einem Build enthalten, sondern in einer Veröffentlichung.
Keine Dateien sind in einem Build oder einer Veröffentlichung enthalten, es sei denn, sie werden von Ihnen auf diese Weise konfiguriert. Beispielsweise führt eine Einstellung "In Ausgabeverzeichnis kopieren" von "Immer" oder "Neu" dazu, dass sie sowohl in einen Build als auch in eine Veröffentlichung aufgenommen werden.
quelle