Skip to content

Commit 98ccf95

Browse files
wing328Urganot
andauthored
[ASPNETCORE] Add support for central package version management (#20401)
* Added useCentralPackageVersionManagement option for aspnetcore * Removed debug code from template * Added option to opt out of centralized version management * Added sample for centralized version management * Removed changes for .net9 * Updated template file for model project * Code formatting * Corrected sample config for aspnetcore * Regenerated Samples * update samples, docs * Fixed models project mustache file * Regenerated samples and docs * Regenerated smaples and doc * Changed options to enum WIP * fix option * [ASPNETCORE] Add support for central package version management #20192 (#20403) * Fixed default value for usePackageVersions * Regenerated docs * update workflow * add props file --------- Co-authored-by: Urganot <[email protected]>
1 parent 9e66c4f commit 98ccf95

File tree

62 files changed

+5349
-371
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+5349
-371
lines changed

.github/workflows/samples-dotnet8-server.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
- samples/server/petstore/aspnetcore-8.0-pocoModels
2424
- samples/server/petstore/aspnetcore-8.0-project4Models
2525
- samples/server/petstore/aspnetcore-8.0-useSwashBuckle
26+
- samples/server/petstore/aspnetcore-8.0-use-centralized-package-version-management
2627
steps:
2728
- uses: actions/checkout@v4
2829
- uses: actions/[email protected]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
generatorName: aspnetcore
2+
outputDir: samples/server/petstore/aspnetcore-8.0-use-centralized-package-version-management
3+
inputSpec: modules/openapi-generator/src/test/resources/3_0/aspnetcore/petstore.yaml
4+
templateDir: modules/openapi-generator/src/main/resources/aspnetcore/3.0
5+
additionalProperties:
6+
packageGuid: '{3C799344-F285-4669-8FD5-7ED9B795D5C5}'
7+
aspnetCoreVersion: "8.0"
8+
userSecretsGuid: 'cb87e868-8646-48ef-9bb6-344b537d0d37'
9+
centralizedPackageVersionManagement: "enable"

docs/generators/aspnetcore.md

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
2020
| ------ | ----------- | ------ | ------- |
2121
|aspnetCoreVersion|ASP.NET Core version: 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0 (deprecated)|<dl><dt>**2.0**</dt><dd>ASP.NET Core 2.0</dd><dt>**2.1**</dt><dd>ASP.NET Core 2.1</dd><dt>**2.2**</dt><dd>ASP.NET Core 2.2</dd><dt>**3.0**</dt><dd>ASP.NET Core 3.0</dd><dt>**3.1**</dt><dd>ASP.NET Core 3.1</dd><dt>**5.0**</dt><dd>ASP.NET Core 5.0</dd><dt>**6.0**</dt><dd>ASP.NET Core 6.0</dd><dt>**7.0**</dt><dd>ASP.NET Core 7.0</dd><dt>**8.0**</dt><dd>ASP.NET Core 8.0</dd></dl>|8.0|
2222
|buildTarget|Target to build an application or library|<dl><dt>**program**</dt><dd>Generate code for a standalone server</dd><dt>**library**</dt><dd>Generate code for a server abstract class library</dd></dl>|program|
23+
|centralizedPackageVersionManagement|Option to control the usage of centralized package version management. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management|<dl><dt>**optout**</dt><dd>Opt out of centralized package version management. Set this if you have a Directory.Packages.pros file but want this project to ignore it.</dd><dt>**default**</dt><dd>Property in project won't be used</dd><dt>**enable**</dt><dd>Centralized package version management will be used</dd></dl>|null|
2324
|classModifier|Class Modifier for controller classes: Empty string or abstract.| ||
2425
|compatibilityVersion|ASP.Net Core CompatibilityVersion| |Version_2_2|
2526
|enumNameSuffix|Suffix that will be appended to all enum names.| |Enum|

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java

+50-6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.swagger.v3.oas.models.OpenAPI;
2222
import io.swagger.v3.oas.models.media.Schema;
2323
import io.swagger.v3.parser.util.SchemaTypeUtil;
24+
import lombok.Getter;
2425
import lombok.Setter;
2526
import org.openapitools.codegen.*;
2627
import org.openapitools.codegen.meta.features.*;
@@ -64,8 +65,14 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen {
6465
public static final String USE_NEWTONSOFT = "useNewtonsoft";
6566
public static final String USE_DEFAULT_ROUTING = "useDefaultRouting";
6667
public static final String NEWTONSOFT_VERSION = "newtonsoftVersion";
67-
68-
@Setter private String packageGuid = "{" + randomUUID().toString().toUpperCase(Locale.ROOT) + "}";
68+
public static final String CENTRALIZED_PACKAGE_VERSION_MANAGEMENT = "centralizedPackageVersionManagement";
69+
public static final String USE_PACKAGE_VERSIONS = "usePackageVersions";
70+
public static final String DEFAULT = "default";
71+
public static final String ENABLE = "enable";
72+
public static final String OPTOUT = "optout";
73+
74+
@Setter
75+
private String packageGuid = "{" + randomUUID().toString().toUpperCase(Locale.ROOT) + "}";
6976
private String userSecretsGuid = randomUUID().toString();
7077

7178
protected final Logger LOGGER = LoggerFactory.getLogger(AspNetServerCodegen.class);
@@ -91,6 +98,7 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen {
9198
private boolean useNewtonsoft = true;
9299
private boolean useDefaultRouting = true;
93100
private String newtonsoftVersion = "3.0.0";
101+
private CliOption centralizedPackageVersionManagement = new CliOption(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT, "Option to control the usage of centralized package version management. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management");
94102

95103
public AspNetServerCodegen() {
96104
super();
@@ -249,6 +257,7 @@ public AspNetServerCodegen() {
249257
"Uses the Newtonsoft JSON library.",
250258
useNewtonsoft);
251259

260+
252261
addOption(NEWTONSOFT_VERSION,
253262
"Version for Microsoft.AspNetCore.Mvc.NewtonsoftJson for ASP.NET Core 3.0+",
254263
newtonsoftVersion);
@@ -301,13 +310,24 @@ public AspNetServerCodegen() {
301310
modelClassModifier.setDefault("partial");
302311
modelClassModifier.setOptValue(modelClassModifier.getDefault());
303312
addOption(modelClassModifier.getOpt(), modelClassModifier.getDescription(), modelClassModifier.getOptValue());
313+
314+
addCentralizedPackageManagementOption();
315+
}
316+
317+
private void addCentralizedPackageManagementOption(){
318+
Map<String, String> centralizedPackageVersionManagementOptions = new HashMap<>();
319+
centralizedPackageVersionManagementOptions.put(DEFAULT, "Property in project won't be used");
320+
centralizedPackageVersionManagementOptions.put(ENABLE, "Centralized package version management will be used");
321+
centralizedPackageVersionManagementOptions.put(OPTOUT, "Opt out of centralized package version management. Set this if you have a Directory.Packages.pros file but want this project to ignore it.");
322+
centralizedPackageVersionManagement.setEnum(centralizedPackageVersionManagementOptions);
323+
cliOptions.add(centralizedPackageVersionManagement);
304324
}
305325

306326
@Deprecated
307327
@Override
308328
protected Set<String> getNullableTypes() {
309329
return new HashSet<>(Arrays.asList("decimal", "bool", "int", "uint", "long", "ulong", "float", "double",
310-
"DateTime", "DateOnly", "DateTimeOffset", "Guid"));
330+
"DateTime", "DateOnly", "DateTimeOffset", "Guid"));
311331
}
312332

313333
@Override
@@ -463,6 +483,30 @@ public void processOpts() {
463483
supportingFiles.add(new SupportingFile("Formatters" + File.separator + "InputFormatterStream.mustache", packageFolder + File.separator + "Formatters", "InputFormatterStream.cs"));
464484

465485
this.setTypeMapping();
486+
487+
488+
setCentralizedPackageManagementOption();
489+
}
490+
491+
private void setCentralizedPackageManagementOption() {
492+
additionalProperties.put(USE_PACKAGE_VERSIONS, true);
493+
494+
if (additionalProperties.containsKey(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT)) {
495+
switch ((String) additionalProperties.get(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT)) {
496+
case DEFAULT:
497+
additionalProperties.remove(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT);
498+
break;
499+
case ENABLE:
500+
additionalProperties.replace(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT, "true");
501+
additionalProperties.put(USE_PACKAGE_VERSIONS, false);
502+
break;
503+
case OPTOUT:
504+
additionalProperties.replace(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT, "false");
505+
break;
506+
default:
507+
throw new RuntimeException("Invalid value `" + additionalProperties.get(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT) + "` for the option `centralizedPackageVersionManagement`. Please refer to the documentation for more information.");
508+
}
509+
}
466510
}
467511

468512
@Override
@@ -808,10 +852,10 @@ private void setIsFramework() {
808852
}
809853

810854
private void setAdditionalPropertyForFramework() {
811-
String targetFramework = ((String)additionalProperties.get(TARGET_FRAMEWORK));
855+
String targetFramework = ((String) additionalProperties.get(TARGET_FRAMEWORK));
812856
if (targetFramework.startsWith("net6.0") ||
813-
targetFramework.startsWith("net7.0") ||
814-
targetFramework.startsWith("net8.0")) {
857+
targetFramework.startsWith("net7.0") ||
858+
targetFramework.startsWith("net8.0")) {
815859
additionalProperties.put(NET_60_OR_LATER, true);
816860
}
817861
}

modules/openapi-generator/src/main/resources/aspnetcore/3.0/ModelsProject.csproj.mustache

+14-7
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,32 @@
1313
<OutputType>Library</OutputType>
1414
<AssemblyName>{{modelPackage}}</AssemblyName>
1515
<PackageId>{{modelPackage}}</PackageId>
16+
{{#useCentralizedPackageVersionManagement}}
17+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
18+
{{/useCentralizedPackageVersionManagement}}
19+
{{#centralizedPackageVersionManagementOptOut}}
20+
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
21+
{{/centralizedPackageVersionManagementOptOut}}
22+
1623
</PropertyGroup>
1724
<ItemGroup>
18-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="{{aspnetCoreVersion}}.0"/>
25+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" {{^useCentralizedPackageVersionManagement}}Version="{{aspnetCoreVersion}}.0" {{/useCentralizedPackageVersionManagement}}/>
1926
{{#useSwashbuckle}}
20-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
27+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" {{^useCentralizedPackageVersionManagement}}Version="1.10.8" {{/useCentralizedPackageVersionManagement}}/>
2128
{{#useNewtonsoft}}
22-
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="{{swashbuckleVersion}}"/>
29+
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" {{^useCentralizedPackageVersionManagement}}Version="{{swashbuckleVersion}}" {{/useCentralizedPackageVersionManagement}}/>
2330
{{/useNewtonsoft}}
2431
{{^useNewtonsoft}}
25-
<PackageReference Include="Swashbuckle.AspNetCore" Version="{{swashbuckleVersion}}"/>
32+
<PackageReference Include="Swashbuckle.AspNetCore" {{^useCentralizedPackageVersionManagement}}Version="{{swashbuckleVersion}}" {{/useCentralizedPackageVersionManagement}}/>
2633
{{/useNewtonsoft}}
27-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="{{swashbuckleVersion}}" />
34+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" {{^useCentralizedPackageVersionManagement}}Version="{{swashbuckleVersion}}" {{/useCentralizedPackageVersionManagement}}/>
2835
{{/useSwashbuckle}}
2936
{{^useSwashbuckle}}
3037
{{#useNewtonsoft}}
31-
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="{{newtonsoftVersion}}" />
38+
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" {{^useCentralizedPackageVersionManagement}}Version="{{newtonsoftVersion}}" {{/useCentralizedPackageVersionManagement}}/>
3239
{{/useNewtonsoft}}
3340
{{/useSwashbuckle}}
34-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
41+
<PackageReference Include="JsonSubTypes" {{^useCentralizedPackageVersionManagement}}Version="1.8.0" {{/useCentralizedPackageVersionManagement}}/>
3542
</ItemGroup>
3643
<ItemGroup>
3744
</ItemGroup>
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,61 @@
11
<Project Sdk="{{projectSdk}}">
2-
<PropertyGroup>
3-
<Description>{{packageDescription}}{{^packageDescription}}{{packageName}}{{/packageDescription}}</Description>
4-
<Copyright>{{packageCopyright}}</Copyright>
5-
<Authors>{{packageAuthors}}</Authors>
6-
<TargetFramework>{{targetFramework}}</TargetFramework>
7-
<GenerateDocumentationFile>true</GenerateDocumentationFile>
8-
<PreserveCompilationContext>true</PreserveCompilationContext>
9-
<Version>{{packageVersion}}</Version>
10-
{{#nullableReferenceTypes}}
11-
<Nullable>annotations</Nullable>
12-
{{/nullableReferenceTypes}}
13-
{{#isLibrary}}
14-
<OutputType>Library</OutputType>
15-
{{/isLibrary}}
16-
<AssemblyName>{{packageName}}</AssemblyName>
17-
<PackageId>{{packageName}}</PackageId>
18-
<UserSecretsId>{{userSecretsGuid}}</UserSecretsId>
19-
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
20-
<DockerfileContext>..\..</DockerfileContext>
21-
</PropertyGroup>
22-
<ItemGroup>
23-
{{#useSeparateModelProject}}
24-
<ProjectReference Include="../{{modelPackage}}/{{modelPackage}}.csproj"/>
25-
{{/useSeparateModelProject}}
26-
{{#useFrameworkReference}}
27-
{{#isLibrary}}
28-
<FrameworkReference Include="Microsoft.AspNetCore.App" />
29-
{{/isLibrary}}
30-
{{/useFrameworkReference}}
31-
{{^useFrameworkReference}}
32-
<PackageReference Include="Microsoft.AspNetCore.App" />
33-
{{/useFrameworkReference}}
34-
{{^useSeparateModelProject}}
35-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="{{aspnetCoreVersion}}.0"/>
36-
{{/useSeparateModelProject}}
37-
{{#useSwashbuckle}}
38-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
39-
{{#useNewtonsoft}}
40-
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="{{swashbuckleVersion}}"/>
41-
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="{{swashbuckleVersion}}"/>
42-
{{/useNewtonsoft}}
43-
{{^useNewtonsoft}}
44-
<PackageReference Include="Swashbuckle.AspNetCore" Version="{{swashbuckleVersion}}"/>
45-
{{/useNewtonsoft}}
46-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="{{swashbuckleVersion}}" />
47-
{{/useSwashbuckle}}
48-
{{^useSwashbuckle}}
49-
{{#useNewtonsoft}}
50-
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="{{newtonsoftVersion}}" />
51-
{{/useNewtonsoft}}
52-
{{/useSwashbuckle}}
53-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
54-
</ItemGroup>
55-
<ItemGroup>
56-
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="{{aspnetCoreVersion}}.0" />-->
57-
</ItemGroup>
2+
<PropertyGroup>
3+
<Description>{{packageDescription}}{{^packageDescription}}{{packageName}}{{/packageDescription}}</Description>
4+
<Copyright>{{packageCopyright}}</Copyright>
5+
<Authors>{{packageAuthors}}</Authors>
6+
<TargetFramework>{{targetFramework}}</TargetFramework>
7+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
8+
<PreserveCompilationContext>true</PreserveCompilationContext>
9+
<Version>{{packageVersion}}</Version>
10+
{{#nullableReferenceTypes}}
11+
<Nullable>annotations</Nullable>
12+
{{/nullableReferenceTypes}}
13+
{{#isLibrary}}
14+
<OutputType>Library</OutputType>
15+
{{/isLibrary}}
16+
<AssemblyName>{{packageName}}</AssemblyName>
17+
<PackageId>{{packageName}}</PackageId>
18+
<UserSecretsId>{{userSecretsGuid}}</UserSecretsId>
19+
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
20+
<DockerfileContext>..\..</DockerfileContext>
21+
{{#centralizedPackageVersionManagement}}
22+
<ManagePackageVersionsCentrally>{{.}}</ManagePackageVersionsCentrally>
23+
{{/centralizedPackageVersionManagement}}
24+
</PropertyGroup>
25+
<ItemGroup>
26+
{{#useSeparateModelProject}}
27+
<ProjectReference Include="../{{modelPackage}}/{{modelPackage}}.csproj"/>
28+
{{/useSeparateModelProject}}
29+
{{#useFrameworkReference}}
30+
{{#isLibrary}}
31+
<FrameworkReference Include="Microsoft.AspNetCore.App" />
32+
{{/isLibrary}}
33+
{{/useFrameworkReference}}
34+
{{^useFrameworkReference}}
35+
<PackageReference Include="Microsoft.AspNetCore.App" />
36+
{{/useFrameworkReference}}
37+
{{^useSeparateModelProject}}
38+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" {{#usePackageVersions}}Version="{{aspnetCoreVersion}}.0" {{/usePackageVersions}}/>
39+
{{/useSeparateModelProject}}
40+
{{#useSwashbuckle}}
41+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" {{#usePackageVersions}}Version="1.10.8" {{/usePackageVersions}}/>
42+
{{#useNewtonsoft}}
43+
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" {{#usePackageVersions}}Version="{{swashbuckleVersion}}" {{/usePackageVersions}}/>
44+
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" {{#usePackageVersions}}Version="{{swashbuckleVersion}}" {{/usePackageVersions}}/>
45+
{{/useNewtonsoft}}
46+
{{^useNewtonsoft}}
47+
<PackageReference Include="Swashbuckle.AspNetCore" {{#usePackageVersions}}Version="{{swashbuckleVersion}}" {{/usePackageVersions}}/>
48+
{{/useNewtonsoft}}
49+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" {{#usePackageVersions}}Version="{{swashbuckleVersion}}" {{/usePackageVersions}}/>
50+
{{/useSwashbuckle}}
51+
{{^useSwashbuckle}}
52+
{{#useNewtonsoft}}
53+
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" {{#usePackageVersions}}Version="{{newtonsoftVersion}}" {{/usePackageVersions}}/>
54+
{{/useNewtonsoft}}
55+
{{/useSwashbuckle}}
56+
<PackageReference Include="JsonSubTypes" {{#usePackageVersions}}Version="1.8.0" {{/usePackageVersions}}/>
57+
</ItemGroup>
58+
<ItemGroup>
59+
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="{{aspnetCoreVersion}}.0" />-->
60+
</ItemGroup>
5861
</Project>
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
2-
<PropertyGroup>
3-
<Description>A library generated from a OpenAPI doc</Description>
4-
<Copyright>No Copyright</Copyright>
5-
<Authors>OpenAPI</Authors>
6-
<TargetFramework>net6.0</TargetFramework>
7-
<GenerateDocumentationFile>true</GenerateDocumentationFile>
8-
<PreserveCompilationContext>true</PreserveCompilationContext>
9-
<Version>1.0.0</Version>
10-
<AssemblyName>Org.OpenAPITools</AssemblyName>
11-
<PackageId>Org.OpenAPITools</PackageId>
12-
<UserSecretsId>cb87e868-8646-48ef-9bb6-344b537d0d37</UserSecretsId>
13-
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
14-
<DockerfileContext>..\..</DockerfileContext>
15-
</PropertyGroup>
16-
<ItemGroup>
17-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0"/>
18-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
19-
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>
20-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
21-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
22-
</ItemGroup>
23-
<ItemGroup>
24-
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->
25-
</ItemGroup>
2+
<PropertyGroup>
3+
<Description>A library generated from a OpenAPI doc</Description>
4+
<Copyright>No Copyright</Copyright>
5+
<Authors>OpenAPI</Authors>
6+
<TargetFramework>net6.0</TargetFramework>
7+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
8+
<PreserveCompilationContext>true</PreserveCompilationContext>
9+
<Version>1.0.0</Version>
10+
<AssemblyName>Org.OpenAPITools</AssemblyName>
11+
<PackageId>Org.OpenAPITools</PackageId>
12+
<UserSecretsId>cb87e868-8646-48ef-9bb6-344b537d0d37</UserSecretsId>
13+
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
14+
<DockerfileContext>..\..</DockerfileContext>
15+
</PropertyGroup>
16+
<ItemGroup>
17+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
18+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
19+
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
20+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
21+
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
22+
</ItemGroup>
23+
<ItemGroup>
24+
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->
25+
</ItemGroup>
2626
</Project>

0 commit comments

Comments
 (0)