Dans mon pipeline Azure DevOps Build, j'ai ajouté une tâche NuGet de type de commande pack (version 2. *).
J'essaie de passer le -Exclude ** * .tt
afin d'exclure ces fichiers lorsqu'ils sont référencés à partir d'un autre projet. Cependant, dans le package NuGet généré, ces fichiers .tt apparaissent dans le dossier Content.
La commande écrite dans le journal de l'hôte est:
steps: - task: NuGetCommand@2 displayName: 'NuGet pack' inputs: command: pack packagesToPack: ProjectName.csproj buildProperties: '-Exclude ***.tt'
Comme vous le voyez, exclure ne fait pas partie des propriétés mais devrait être un argument -Exclude
séparé.
Une idée de comment puis-je y parvenir? Merci beaucoup!
Ajout d'une capture d'écran et YAML:
nuget.exe pack PROJECTNAME.csproj -NonInteractive -OutputDirectory SOME_OUTPUTPATH -Properties "Configuration=release;\"-Exclude ***.tt\"" -Verbosity Detailed
p >
3 Réponses :
Transmission des arguments NuGet 'Pack' dans Azure DevOps Build Pipeline
Vous ne pouvez pas utiliser l'argument
-Exclude
de cette manière. Parce que cet argument est utilisé pour.nuspec
et non pour.csproj
,-Exclude
n'est pas la propriété dans le fichier projet, nous ne pouvons donc pas utiliser avec.csproj
.Lorsque vous vérifiez le document nuget commande nuget pack (NuGet CLI) , vous pouvez voir l'exemple suivant:
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MyTestCore</id> <version>6.0.0</version> <authors>TestContentFile</authors> <owners>TestContentFile</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Package Description</description> <contentFiles> <files include="any/any/Data.xml" buildAction="content" flatten="true" copyToOutput="true"/> <files include="any/any/Test.cs" buildAction="content" flatten="true" copyToOutput="true"/> </contentFiles> </metadata> <files> <file src="contentFiles/any/any/Data.xml" target="contentFiles/any/any/Data.xml" /> <file src="contentFiles/any/any/Test.cs" target="contentFiles/any/any/Test.cs" /> </files> </package>Si vous voulez exclure les fichiers
.tt
avec le fichier projet.csproj
, vous devez aller dans votre fichier projet pour exclure ce type de fichier, comme:<ItemGroup> <None Update="**.tt"> <Pack>False</Pack> <Generator>TextTemplatingFileGenerator</Generator> <LastGenOutput>Test.txt</LastGenOutput> </None> ... </ItemGroup>Si vous ne souhaitez pas modifier le fichier source, vous pouvez créer le fichier
.nuspec
, puis emballer le fichier.nuspec
avec l'argument-Exclure
.Par exemple, je crée le
.nuspec
suivant :nuget pack Package.nuspec -exclude "*.exe" -exclude "*.bat"Si j'emballe ce fichier .nuspec avec l'argument
-Exclure "** \ *. Cs"
:Ensuite, nous pourrions connaître, le
.cs
est exclu du package.J'espère que cela vous aidera.
Merci beaucoup! Je suis allé à mon projet C # et j'ai changé l'action de construction des fichiers Context.tt (liés à .edmx) sur Aucun. De cette façon, tous ces fichiers n'étaient pas inclus après l'emballage.
Lorsque vous utilisez Voici un journal du Et voici un journal après avoir fait la commande personnalisée, il y a non Ma tâche est: -Exclude
avec nuget pack .csproj
, vous devez indiquer le chemin complet du fichier exclu. mais il y a un autre problème ici, Azure DevOps ajoute le -Exclude
au -Properties
et il ignore les explications, nous devons donc ajouter le -Exclude code> d'une autre manière, comment? dans la commande NuGet
custom
: - task: NuGetCommand@2
inputs:
command: custom
arguments: 'pack "$(Build.SourcesDirectory)\TestVars\TestVars\TestVars.csproj" -Exclude "$(Build.SourcesDirectory)\TestVars\TestVars\bin\Debug\*.exe"'
-Exclude
normal comme vous l'avez essayé, vous pouvez voir que le nuget pack my Fichier .exe
: .exe
:- task: NuGetCommand@2
inputs:
command: custom
arguments: 'pack "$(Build.SourcesDirectory)\Path\To\.csproj" -Exclude "$(Build.SourcesDirectory)\Path\to\*.tt"'
Je vous remercie! C'est une excellente approche. Prendra en considération le champ personnalisé
lors de l'emballage.
Cela a été résolu pour moi dans Visual Studio 2015:
<ItemGroup> <None Include="**.tt"> <Pack>False</Pack> <Generator>TextTemplatingFileGenerator</Generator> <LastGenOutput>Test.txt</LastGenOutput> </None> ... </ItemGroup>
Pouvez-vous partager votre tâche pépite? (yaml ou capture d'écran)
A modifié le message d'origine