Jedes Mal, wenn ich eine Datei in ein ASP.NET-Projekt als Link verlinken muss, gibt es immer etwas, was ich vergessen habe, weil Visual Studio viel zu nervig und nervig ist mit diesen. Es liegt ein Fehler/eine Einschränkung vor, sodass die Datei nicht in den Debug-Ausgabeordner kopiert wird. Außerdem müssen die Eigenschaften der Datei geändert werden, damit sie in den Ausgabeordner für Veröffentlichungen kopiert wird.Datei als Link in Visual Studio hinzufügen - Debug und Publizieren
Ich habe das auf die harte Tour gelernt, nach vielen Recherchen, und ich habe ein AfterBuild-Ziel erstellt, um diesen Prozess zu vereinfachen. Beim Hinzufügen der Datei muss jedoch noch etwas manuell ausgeführt werden.
Hier ist ein Beispiel für ein Projekt, das ich pflege. Angenommen, wir möchten die Datei YIUCARD im Ordner "Dienstprogramme" des ASP.NET-Projekts hinzufügen.
1) Klicken Sie mit der rechten Maustaste auf den Ordner "Dienstprogramme" in Visual Studio und wählen Sie "Hinzufügen -> Vorhandenes Element".
2) Wählen Sie die Datei hinzufügen, darauf klicken ONCE (nicht Doppelklick).
3) als nächstes in den Pfeil klicken Sie auf die Schaltfläche „Hinzufügen“ und wählen Sie „Als Verknüpfung“.
Im Moment wird dies nichts tun. Die Datei wird nicht in einen beliebigen Ordner kopiert (Debuggen und Veröffentlichen). Es wird nur zum Projekt hinzugefügt.
4) Klicken Sie mit der rechten Maustaste in die Datei und öffnen Sie Eigenschaften.
5) ändern: „Aktion Build“ auf „Inhalt“ „kopieren Output Directory“ auf „Kopieren immer“
Zu diesem Zeitpunkt wird die Datei in den Publish-Ausgabeordner kopiert werden (an jeder Stelle, die wir beim Veröffentlichen definieren). Wenn wir jedoch lokal debuggen (F5), wird es nicht funktionieren, weil die Datei nicht in den lokalen Ordner "Dienstprogramme" in der Codebasis kopiert wird.
6) Speichern Sie die Änderungen in Visual Studio, indem Sie "Alle speichern" auswählen. Dies ist so, dass die ".csproj" -Datei gespeichert wird, da wir Änderungen daran vorgenommen haben und diese nun manuell bearbeiten werden.
7) Öffnen Sie die „CSPROJ“ in Notepad ++.
8) Fügen Sie die Datei auf die "Before" Ereignis (hier ist von mir):
<Target Name="BeforeBuild">
<ItemGroup>
<UtilitiesFiles Include="..\path\to\file\REDOPXX.NEW" />
<UtilitiesFiles Include="..\path\to\file\REDFMTST" />
<UtilitiesFiles Include="..\path\to\file\JOBCARD" />
<UtilitiesFiles Include="..\path\to\file\YIUCARD" />
</ItemGroup>
<Copy SourceFiles="@(UtilitiesFiles)" DestinationFolder=".\utilities" SkipUnchangedFiles="true" />
</Target>
9) Ich habe eine "Afterbuild" Ereignis für Release-Modus, veröffentlicht das Projekt automatisch für mich, so dass die Dateien direkt in den gewünschten Ausgabeordner gehen:
10) Speichern Sie die Datei in Notepad ++ und laden Sie sie erneut in Visual Studio.
Wenn Sie das Projekt erstellen, wird die Datei in beiden Debug kopiert und Release/Publish Ordner!
Allerdings würde ich gerne wissen, ob es eine einfachere/intuitive Möglichkeit gibt, dies zu tun.
Sie könnten sagen, dass dies behoben werden würde, indem Sie den Debug-Ausgabeordner auf den gleichen wie den Release/Publish-Ordner ändern, so dass die Dateien nach der ersten Veröffentlichung dort wären. Bitte beachten Sie, dass es auch einen Fehler gibt. Wenn ich einen anderen Ausgabeordner als "bin" verwende, beschweren sich aspx-Dateien darüber, dass sie die Assemblys nicht finden können. Selbst wenn ich "Copy to Output Directory" auf "Copy Always" setze, wird es sich beschweren, dass "Global.asax.cs" nicht gefunden wurde.
Bitte sehen Sie diese Fragen:
Parser Error Message: Could not load type 'TestMvcApplication.MvcApplication'
"Could not load type [Namespace].Global" causing me grief
Ist das Fest/verbessert in den neueren Versionen von Visual Studio?
Hallo Keith.Das ist nicht das Problem, das ich beschreibe, aber danke für den Tipp sowieso :) – Nuno