2010-07-23 4 views
7

Ich versorge meine asp.net mvc Ansichten von vielen Assemblys und das Kopieren von Ansichten in die Hauptanwendung auf Post-Build-Ereignis.Visual Studio: Wie kann die Standard "Build Action" für bestimmte Erweiterungstypen pro Projekt oder Lösung überschrieben werden?

Dies funktioniert jedoch, erkannte ich, dass, wenn ich etwas in Sicht ändern und nur F5 drücken, Änderungen nicht enthalten sind. Was ich tun muss, um Änderungen zu sehen, ist: Speichern, Build < - Klicken Sie explizit, und drücken Sie dann F5. Es ist jedoch eine ziemlich nervige Lösung.

Ich entdeckte, dass das Festlegen der Build-Aktion auf "Embedded Resource" in der Ansicht das Problem ebenfalls behebt. Andere Entwickler erinnern sich jedoch nicht daran, dass sie dies tun müssen, nachdem sie der Lösung alle Ansichten hinzugefügt haben.

Gibt es eine Möglichkeit, die Standard-Build-Aktion für bestimmte Dateierweiterungen wie: * .aspx, * .ascx im Projekt oder (besser) in Lösung zu überschreiben?

Was ich gefunden habe, ist eine Möglichkeit, diese Einstellung global hinzuzufügen, pro Maschine, aber ich möchte nicht, dass (link: http://blog.andreloker.de/post/2010/07/02/Visual-Studio-default-build-action-for-non-default-file-types.aspx) tun

Irgendwelche Ideen?

+7

Sie zeigen auf einen Artikel, den ich in meinem Beitrag erwähnt habe. Hast du meinen Beitrag gelesen oder einfach nur den Titel gescannt? –

Antwort

6

Betrachten Sie die folgende Projektdatei Umriss:

<Project ToolsVersion="3.5" DefaultTargets="EmbedViews;Build" ...> 
... 
    <Target Name="EmbedViews"> 
    <ItemGroup> 
     <EmbeddedResource Include="Views\*\*.aspx" /> 
     <EmbeddedResource Include="Views\*\*.ascx" /> 
    </ItemGroup> 
    </Target> 
</Project> 

Dadurch werden alle aspx und ascx Dateien in Views\<subfolder> Ihrer Bibliothek als Embedded Resource hinzuzufügen. Beachten Sie, dass EmbedViews hinzugefügt DefaultTargetsvorBuild - um hier wichtig ist, fand ich, dass Fehler selbst machen aus :-)

Da die Bearbeitung aller Projektdateien diese Schnipsel zu bekommen ist umständlich, könnten Sie Ihre eigenen machen Projektvorlage mit diesem enthalten.

Bitte lassen Sie mich wissen, wenn dies geholfen hat.

+1

Ich versuchte dies, konnte es aber nicht zur Arbeit – Colin

+2

Kleine Änderung, wenn Sie eine beliebige Anzahl von Nachkommen in die Ordnerstruktur aufnehmen möchten: "Ansichten \\ ** \\ *. Aspx" –

0

Falls sich jemand fragt sich hier - es gibt immer noch keine Möglichkeit, das zu tun, wenn Sie es auf aktuellen und Zukunft Artikel arbeiten wollen.

In VS 2017, wenn neue Datei hinzufügen, wenn die Catch-All-Regel vorhanden ist (zB Content Include = "**.*ts"), wenn Sie eine neue Datei hinzufügen, wird es fügen Sie es mit einer eigenen BuildAction, ignorieren Sie Ihre vordefinierten catch-all <ItemGroup> eigene Linie ist .