2017-10-12 1 views
0

J'essaye de construire asp.net dotnet application centrale vis CLI mais je veux exclure wwwroot\dist\**\* de la compilation.Exclure wwwroot dist de build asp.net dotnet core 2.0

Dans dist dossier J'ai un fichier statique qui doit être copié mais pas compilé. J'ai essayé en ajoutant ItemGroup mais ne peux pas comprendre.

Aussi j'ai suivi ce document mais il y a quelque chose que je ne comprends pas et probablement diong faux.

configuration exemple ici si:

<ItemGroup> 
    <Compile Exclude="wwwroot\dist\**\*" /> 
    </ItemGroup> 

Une de mes erreurs est:

erreur MSB4232: Les éléments qui sont en dehors des éléments cibles doivent avoir une des opérations suivantes: Inclure, mise à jour, ou Supprimer.

Répondre

2

Il devrait ressembler à ceci:

<ItemGroup> 
    <Compile Remove="wwwroot\dist\**" /> 
    <Content Remove="wwwroot\dist\**" /> 
    <EmbeddedResource Remove="wwwroot\dist\**" /> 
    <None Remove="wwwroot\dist\**" /> 
    </ItemGroup> 

Mais il pourrait y avoir quelque chose d'autre dans le jeu. Voici comment noyau .net « par défaut » 2 csproj devrait ressembler à + dossier « dist » ignorer:

<Project Sdk="Microsoft.NET.Sdk.Web"> 

    <PropertyGroup> 
    <TargetFramework>netcoreapp1.1</TargetFramework> 
    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback> 
    </PropertyGroup> 

    <ItemGroup> 
    <Compile Remove="wwwroot\dist\**" /> 
    <Content Remove="wwwroot\dist\**" /> 
    <EmbeddedResource Remove="wwwroot\dist\**" /> 
    <None Remove="wwwroot\dist\**" /> 
    </ItemGroup> 

    <ItemGroup> 
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> 
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" /> 
    </ItemGroup> 

    <ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" /> 
    </ItemGroup> 

</Project> 

Si vous voulez avoir le contenu du dossier copié vers la sortie et encore visible à l'intérieur VS:

<ItemGroup> 
    <Compile Remove="wwwroot\dist\**" /> 
    </ItemGroup> 
+0

Il compile, mais que se passe-t-il si je ne souhaite pas passer la compilation? – kat1330

+0

a mis à jour ma réponse. –

+0

Malheureusement, cela ne fonctionne pas pour moi. J'essaie d'ignorer la compilation mais de copier dans le dossier 'publish'. – kat1330

0

Vous pouvez également vous assurer que les éléments ne sont jamais ajoutés au projet, vous n'avez donc pas besoin de les supprimer. Cela peut être un peu plus performant si le répertoire est très grand. Pour ajouter des exclusions au modèle glob par défaut, vous devez ajouter ceci à votre fichier projet:

<PropertyGroup> 
    <DefaultItemExcludes>$(DefaultItemExcludes);wwwroot\dist\**</DefaultItemExcludes> 
</PropertyGroup>