webentwicklung-frage-antwort-db.com.de

MS Visual Studio: Wie können bestimmte Projektordner von der Veröffentlichung ausgeschlossen werden?

Ich habe bestimmte Ordner, die ich im Projekt behalten möchte, aber nicht in die Veröffentlichung aufnehmen möchte. 

Ist das möglich?

46
meetpd

Michael ist absolut richtig, durch das Bearbeiten der .csproj-Datei können Sie Dateien/Ordner manuell von der Veröffentlichung ausschließen.

Wenn Sie sich nicht mit der .csproj-Datei beschäftigen möchten, können Sie die Datei (en) im VS Solution Explorer hervorheben. Ändern Sie im Eigenschaftenbereich den Build-Vorgang von "content" in "none".

Auf diese Weise müssen Sie das Projekt nicht aus der Projektmappe entfernen, die .csproj laden und für jede neue hinzuzufügende Datei eine Zeile hinzufügen, die nicht veröffentlicht werden muss, sondern mit 3 Mausklicks dasselbe erreichen.

(vorausgesetzt, Sie haben auf der Registerkarte "Veröffentlichung" die Option "Nur für die Ausführung dieser Anwendung erforderliche Veröffentlichungsdateien" festgelegt.)

26
jbokkers

Bei einem Website-Projekt können Sie bestimmte Ordner und/oder Dateien wie folgt ausschließen (siehe elements ExcludeFoldersFromDeployment und ExcludeFilesFromDeployment):

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.Microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <WebPublishMethod>FileSystem</WebPublishMethod>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <SiteUrlToLaunchAfterPublish />
        <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
        <ExcludeApp_Data>True</ExcludeApp_Data>
        <publishUrl>D:\YAZILIM\Adopen.2015\PreCompiledWeb</publishUrl>
        <DeleteExistingFiles>True</DeleteExistingFiles>
        <PrecompileBeforePublish>True</PrecompileBeforePublish>
        <EnableUpdateable>True</EnableUpdateable>
        <DebugSymbols>False</DebugSymbols>
        <WDPMergeOption>MergeAllOutputsToASingleAssembly</WDPMergeOption>
        <UseMerge>True</UseMerge>
        <SingleAssemblyName>AdoIntranet</SingleAssemblyName>
        <ExcludeFoldersFromDeployment>customobjects;uploads</ExcludeFoldersFromDeployment> 
        <ExcludeFilesFromDeployment>app.config</ExcludeFilesFromDeployment>
    </PropertyGroup>
</Project>
18
HGMamaci

Sie können in der Datei Web.cspoj ein 'Suchen und Ersetzen' ausführen, um einen bestimmten Ordner schnell aus dem Prozess publish/deploy zu entfernen

Wie so;

<Content Include="Uploads/

zu

<None Include="Uploads/
5
Stacker-flow

Eine andere Möglichkeit ist, dass Sie Ordner in Windows Explorer ausblenden können, die nicht veröffentlicht werden müssen (nicht die beste Lösung, funktioniert jedoch, wenn Sie über eine große Anzahl von Bildern verfügen, die sich noch in der Entwicklungsbox befinden müssen).

4
DSharper

Da die Frage mit ASP markiert ist, gibt es keine .proj-Datei, mit der man sich verwirren kann. Bei VS2015 gibt es stattdessen eine weitere nützliche Datei: website.publishproj. Und dieser Asp.Net-Artikel zum Ausschließen von Dateien und Ordnern erwähnt die .wpp.targets-Datei.

Alle diese Dateien enthalten <ItemGroup>-Elemente, die Elemente wie <ExcludeFromPackageFolders> enthalten können. Da diese Funktionen dokumentiert zu sein scheinen, verwenden Sie sie einfach und fühlen Sie sich nicht schuldig, wenn Sie Hacking oder "Chaos" machen. Das Ausschließen eines Verzeichnisses mithilfe der einfachen Anweisungen dieses Links und der website.publishproj-Datei funktionierte für mich wie ein Zauber!

0
Roland
  • Projekt entladen, 
  • Klicken Sie mit der rechten Maustaste auf Bearbeiten .csproj.
  • Füge das hinzu:
<ItemGroup>
<Content Update="Data\CernainFolder\*.*">
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</Content>
</ItemGroup>
  • Projekt neu laden.

Das sollte gut funktionieren

0
Zilpio