Quantcast
Channel: Active questions tagged nuget-package - Stack Overflow
Viewing all articles
Browse latest Browse all 3067

How to create a NuGet package in ADO with only .json file, no csproj or binaries

$
0
0

Due to security issues with ADO in my workplace I'm unable to restore GIT submodules during project build. One dependency we will be needing is a set of common and stack-specific configuration files. I was hoping to create a method to share these configuration JSON files via an internal private artifact (NuGet package).

In the project folder, I have the following structure:

readme.txtbla.ymlbla.targets/content   common.configuration.json   dev.common.configuration.json

And a package.nuspec file:

<?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"><metadata><id>BlaID</id><version>1.0.0</version><authors>Bla</authors><owners>Bla</owners><releaseNotes>Initial creation</releaseNotes><description>Common configuration for all layers bla</description><tags>bla tags</tags></metadata><files><file src="readme.txt" target="" /><file src="content\common.configuration.json" target="content" /><file src="content\dev.common.configuration.json" target="content" /></files></package>

Bla.targets:

<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><Target Name="CreatePackage"><PropertyGroup><Configuration>Release</Configuration><PackageSource>bin$(Configuration)\Package</PackageSource><NuSpecPath>$(MSBuildProjectName).nuspec</NuSpecPath></PropertyGroup><RemoveDirDirectories="$(PackageSource)"/><Copy SourceFiles="$(NuSpecPath)" DestinationFolder="$(PackageSource)"/><Copy SourceFiles="content\dev.common.configuration.json" DestinationFolder="$(PackageSource)\configuration"/><Copy SourceFiles="content\rc.common.configuration.json" DestinationFolder="$(PackageSource)\configuration"/><Copy SourceFiles="content\qa.common.configuration.json" DestinationFolder="$(PackageSource)\configuration"/><Copy SourceFiles="content\prod.common.configuration.json" DestinationFolder="$(PackageSource)\configuration"/></Target></Project>

My build pipeline YAML is:

trigger:  branches:    include:      - develop      - release/*      - story/*variables:  - name: isRelease    value: ${{ eq(variables['Build.SourceBranch'], 'refs/heads/release') }}  - name: isDevelop    value: ${{ eq(variables['Build.SourceBranch'], 'refs/heads/develop') }}jobs:- job:  displayName: Build  steps:    - task: NuGetCommand@2      inputs:        command: 'pack'        packagesToPack: '**/package.nuspec'        versioningScheme: 'byPrereleaseNumber'        majorVersion: '1'        minorVersion: '0'        patchVersion: '0'    - task: NuGetCommand@2      condition: or(eq(variables.isRelease, true), eq(variables.isDevelop, true))      inputs:        command: 'push'        packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'        nuGetFeedType: 'internal'        publishVstsFeed: '{the feed}'

When I view the .nuget\packages folder, the restored package does have the files, and the readme.txt file appears as expected, but the .json files do not show up anywhere in the referencing project itself.

Is there any way to have those restore into a path within the project that is using that package? To have the content files included in the referencing project's build?


Viewing all articles
Browse latest Browse all 3067

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>