Frage
Wie
<None Include="C:\foo.bar" />
unterscheidet sich von
<Content Include="C:\foo.bar" />
Lösung
Der MSDN-Artikel auf der Aktion zu bauen Eigenschaft erklärt die Unterschiede.
Keine - Die Datei wird nicht in der Projektausgabegruppe enthalten und wird nicht in den Build-Prozess erstellt. Ein Beispiel ist eine Textdatei, die Dokumentation, wie eine Readme-Datei enthält.
Inhalt - Die Datei nicht kompiliert wird, werden jedoch in der Content Ausgangsgruppe enthalten. Zum Beispiel ist diese Einstellung der Standardwert für eine HTM oder eine andere Art von Web-Datei.
Andere Tipps
Ein Unterschied ist, wie sie veröffentlicht werden; „Keine“ Elemente nicht in einer Publizierungsprofilen bekommen, „Inhalt“ Artikel tun; zum Beispiel auf der „Application Files“ Dialog auf der Registerkarte Veröffentlichen.
Ich bin nicht 100% sicher (las ich die MSDN Beschreibung von Build Aktion Eigenschaft), aber das Kopieren nur die Antwort von MSDN zu Stackoverflow keine Antwort auf die Frage vollständig für ich.
Der Unterschied von Keine und Content nur Auswirkungen auf Web-Projekten hat. Für ein Kommandozeilen-Projekt, WinForm Projekt oder Unittest-Projekt (in meinem Fall) usw. Kein und Content haben kein anderes Verhalten.
MSDN: „Projektausgabegruppe“ oder „Content Ausgangsgruppe“ nur Begriffe in einem Web-Projekt verwendet, rechts
In meiner Situation, meine MSBuild-Datei ein ItemGroup
für Bild Ressourcen hatte, die wie folgt aufgetaucht:
<ItemGroup>
<Content Include="Resources\image001.png" />
<Content Include="Resources\image002.png" />
<Content Include="Resources\image003.png" />
<Content Include="Resources\image004.png" />
<None Include="Resources\image005.png" />
<None Include="Resources\image006.png" />
<None Include="Resources\image007.png" />
</ItemGroup>
Während mein Projekt in Ordnung war der Bau, das ließ mich fragen, warum ich in meinem Content
eine Mischung aus None
und ItemGroup
Elementtyp Elementen hatte. Diese MSDN-Artikel (für Visual Studio 2010) gab mir die Führung ich suchte:
Beachten Sie, dass, wenn der Ressource-Editor ein Bild hinzufügt, setzt sie Build Aktion Keine , da die RESX-Datei das Bild verweist Datei. Zum Zeitpunkt der Erstellung wird das Bild in die resources-Datei gezogen aus der RESX-Datei erstellt. Das Bild kann dann leicht zugänglich durch die stark typisierte Klasse automatisch generiert für die RESX-Datei. Daher sollten Sie diese Einstellung nicht ändern auf Eingebettete Ressource , weil dies zu tun umfassen würde das Bild zweimal in die Montage.
. Auflösung: Mit dieser Führung, mit einem Texteditor, Ich habe die Content
Elementtyp Elemente None
Auch für einen Überblick über MSBuild Artikel finden Sie in diesem MSDN-Artikel .
Ich habe ein Projekt, das keine übersetzbaren Elemente enthält (es speichert HTML und JavaScript für Jasmin Unit-Tests).
Eines Tages meine Lösung (dass das Projekt enthalten ist) gestoppt Kompilieren sagen: „Das Ziel‚Build‘existiert nicht im Projekt“.
Ich habe einen Import in den Compiler zu bringen, die auf meiner Maschine gut funktioniert aber nicht msbuild auf dem Build-Server.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Ich änderte dann eine Zeile aus
<None Include="SpecRunner.html" />
<Content Include="SpecRunner.html" />
und es funktioniert auf dem Build-Server als auch.
Sie müssen keine in einer Vorlage Projektdatei zum Einbinden von Dateien Sie in der .vstemplate definieren sie sonst bei der Erstellung und Übersetzungsprozess verloren gehen. Sie erhalten in den temporären Ordner links dahinter nutzt alles zu bauen und dann kurz nach gelöscht.
In meinem Fall .Pubxml ist eine dieser Dateien unter Keine Liste. Es ist nicht für Lösung Gebäude oder als statische Datei für Web-Projekt gedacht. Aber die Website Azure zu veröffentlichen, sind die Konfigurationen in dieser.
Wie pro Microsoft-Artikel Dies sind die wichtigsten Arten sehen wir unter CSPROJ Datei-Tags:
Keine - Die Datei wird nicht in der Projektausgabegruppe aufgenommen und ist nicht in dem Erstellungsprozess erstellt. Ein Beispiel ist eine Textdatei, die enthält Dokumentation, wie eine Readme-Datei.
Übersetzen - Die Datei wird kompiliert in die Build-Ausgabe. Diese Einstellung ist für die Code-Dateien verwendet wird.
Inhalt - Die Datei kann nicht kompiliert wird, sondern im Inhalt enthalten Ausgangsgruppe. Zum Beispiel ist diese Einstellung der Standardwert für ein .htm oder andere Art von Web-Datei.
Eingebettete Ressource - Diese Datei wird im Hauptprojekterstellungs eingebettet Ausgabe als eine DLL oder eine ausführbare. Es wird in der Regel für Ressource verwendet Dateien.