-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJD.Efcpt.Build.props
More file actions
162 lines (138 loc) · 11.3 KB
/
JD.Efcpt.Build.props
File metadata and controls
162 lines (138 loc) · 11.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<Project>
<PropertyGroup>
<!--
Enablement: Enabled by default for all consumers.
NOTE: This props file is imported from NuGet's build/ folder and therefore only applies to direct consumers of this package.
However, the actual code generation will only run if valid inputs are found:
- A SQL project reference (*.sqlproj or MSBuild.Sdk.SqlProj), OR
- An explicit DACPAC path (EfcptDacpac), OR
- Explicit connection string configuration (EfcptConnectionString, EfcptAppSettings, EfcptAppConfig)
Transitive consumers without SQL project references will NOT auto-discover connection
strings from their appsettings.json - this prevents WebApi projects from accidentally
triggering model generation.
To explicitly disable, set:
<EfcptEnabled>false</EfcptEnabled>
-->
<EfcptEnabled Condition="'$(EfcptEnabled)'==''">true</EfcptEnabled>
<!-- Output -->
<EfcptOutput Condition="'$(EfcptOutput)'==''">$(BaseIntermediateOutputPath)efcpt\</EfcptOutput>
<EfcptGeneratedDir Condition="'$(EfcptGeneratedDir)'==''">$(EfcptOutput)Generated\</EfcptGeneratedDir>
<!-- Input overrides -->
<EfcptSqlProj Condition="'$(EfcptSqlProj)'==''"></EfcptSqlProj>
<EfcptDacpac Condition="'$(EfcptDacpac)'==''"></EfcptDacpac>
<EfcptConfig Condition="'$(EfcptConfig)'==''">efcpt-config.json</EfcptConfig>
<EfcptRenaming Condition="'$(EfcptRenaming)'==''">efcpt.renaming.json</EfcptRenaming>
<EfcptTemplateDir Condition="'$(EfcptTemplateDir)'==''">Template</EfcptTemplateDir>
<!-- Connection String Configuration -->
<EfcptConnectionString Condition="'$(EfcptConnectionString)'==''"></EfcptConnectionString>
<EfcptAppSettings Condition="'$(EfcptAppSettings)'==''"></EfcptAppSettings>
<EfcptAppConfig Condition="'$(EfcptAppConfig)'==''"></EfcptAppConfig>
<EfcptConnectionStringName Condition="'$(EfcptConnectionStringName)'==''">DefaultConnection</EfcptConnectionStringName>
<!-- Database provider: mssql (default), postgres, mysql, sqlite, oracle, firebird, snowflake -->
<EfcptProvider Condition="'$(EfcptProvider)'==''">mssql</EfcptProvider>
<!-- Solution probing -->
<EfcptSolutionDir Condition="'$(EfcptSolutionDir)'==''">$(SolutionDir)</EfcptSolutionDir>
<EfcptSolutionPath Condition="'$(EfcptSolutionPath)'==''">$(SolutionPath)</EfcptSolutionPath>
<EfcptProbeSolutionDir Condition="'$(EfcptProbeSolutionDir)'==''">true</EfcptProbeSolutionDir>
<!-- Tooling -->
<EfcptToolMode Condition="'$(EfcptToolMode)'==''">auto</EfcptToolMode>
<EfcptToolPackageId Condition="'$(EfcptToolPackageId)'==''">ErikEJ.EFCorePowerTools.Cli</EfcptToolPackageId>
<EfcptToolVersion Condition="'$(EfcptToolVersion)'==''">10.*</EfcptToolVersion>
<EfcptToolRestore Condition="'$(EfcptToolRestore)'==''">true</EfcptToolRestore>
<EfcptToolCommand Condition="'$(EfcptToolCommand)'==''">efcpt</EfcptToolCommand>
<EfcptToolPath Condition="'$(EfcptToolPath)'==''"></EfcptToolPath>
<EfcptDotNetExe Condition="'$(EfcptDotNetExe)'==''">dotnet</EfcptDotNetExe>
<!-- Fingerprinting -->
<EfcptFingerprintFile Condition="'$(EfcptFingerprintFile)'==''">$(EfcptOutput)fingerprint.txt</EfcptFingerprintFile>
<EfcptStampFile Condition="'$(EfcptStampFile)'==''">$(EfcptOutput).efcpt.stamp</EfcptStampFile>
<EfcptDetectGeneratedFileChanges Condition="'$(EfcptDetectGeneratedFileChanges)'==''">false</EfcptDetectGeneratedFileChanges>
<!-- Diagnostics -->
<EfcptLogVerbosity Condition="'$(EfcptLogVerbosity)'==''">minimal</EfcptLogVerbosity>
<EfcptDumpResolvedInputs Condition="'$(EfcptDumpResolvedInputs)'==''">false</EfcptDumpResolvedInputs>
<!--
Warning Level Configuration: Controls the severity of build-time diagnostic messages.
EfcptAutoDetectWarningLevel: Severity for SQL project or connection string auto-detection.
Valid values: "None", "Info", "Warn", "Error". Defaults to "Info".
EfcptSdkVersionWarningLevel: Severity for SDK version update notifications.
Valid values: "None", "Info", "Warn", "Error". Defaults to "Warn".
-->
<EfcptAutoDetectWarningLevel Condition="'$(EfcptAutoDetectWarningLevel)'==''">Info</EfcptAutoDetectWarningLevel>
<EfcptSdkVersionWarningLevel Condition="'$(EfcptSdkVersionWarningLevel)'==''">Warn</EfcptSdkVersionWarningLevel>
<!--
SDK Version Check: Opt-in feature to check for newer SDK versions on NuGet.
Enable with EfcptCheckForUpdates=true. Results are cached to avoid network
calls on every build. This helps SDK users stay up-to-date since NuGet's
SDK resolver doesn't support floating versions or automatic update notifications.
-->
<EfcptCheckForUpdates Condition="'$(EfcptCheckForUpdates)'==''">false</EfcptCheckForUpdates>
<EfcptUpdateCheckCacheHours Condition="'$(EfcptUpdateCheckCacheHours)'==''">24</EfcptUpdateCheckCacheHours>
<EfcptForceUpdateCheck Condition="'$(EfcptForceUpdateCheck)'==''">false</EfcptForceUpdateCheck>
<!--
Split Outputs: separate a primary Models project from a secondary Data project.
Enable EfcptSplitOutputs in the Models project (with EfcptEnabled=true) and
set EfcptDataProject to the target Data project that should receive DbContext
and configuration classes.
The Models project runs efcpt and generates all files. It keeps the entity
model classes (for example, in a Models/ subdirectory), and copies DbContext
and configuration classes to the configured Data project.
-->
<EfcptSplitOutputs Condition="'$(EfcptSplitOutputs)'==''">false</EfcptSplitOutputs>
<EfcptDataProject Condition="'$(EfcptDataProject)'==''"></EfcptDataProject>
<EfcptDataProjectOutputSubdir Condition="'$(EfcptDataProjectOutputSubdir)'==''">obj\efcpt\Generated\</EfcptDataProjectOutputSubdir>
<!-- External Data: for Data project to include DbContext/configs copied from Models project -->
<EfcptExternalDataDir Condition="'$(EfcptExternalDataDir)'==''"></EfcptExternalDataDir>
<!--
Config Overrides: Apply MSBuild properties to override efcpt-config.json values.
When EfcptApplyMsBuildOverrides is true (default), properties set below will override
the corresponding values in the config file. This allows configuration via MSBuild
without editing JSON files directly.
When using the library default config, overrides are ALWAYS applied.
When using a user-provided config, overrides are only applied if EfcptApplyMsBuildOverrides=true.
-->
<EfcptApplyMsBuildOverrides Condition="'$(EfcptApplyMsBuildOverrides)'==''">true</EfcptApplyMsBuildOverrides>
<!-- Names section overrides -->
<!-- Use RootNamespace if defined, otherwise fall back to project name for zero-config scenarios -->
<EfcptConfigRootNamespace Condition="'$(EfcptConfigRootNamespace)'=='' and '$(RootNamespace)'!=''">$(RootNamespace)</EfcptConfigRootNamespace>
<EfcptConfigRootNamespace Condition="'$(EfcptConfigRootNamespace)'==''">$(MSBuildProjectName)</EfcptConfigRootNamespace>
<EfcptConfigDbContextName Condition="'$(EfcptConfigDbContextName)'==''"></EfcptConfigDbContextName>
<EfcptConfigDbContextNamespace Condition="'$(EfcptConfigDbContextNamespace)'==''"></EfcptConfigDbContextNamespace>
<EfcptConfigModelNamespace Condition="'$(EfcptConfigModelNamespace)'==''"></EfcptConfigModelNamespace>
<!-- File layout section overrides -->
<EfcptConfigOutputPath Condition="'$(EfcptConfigOutputPath)'==''"></EfcptConfigOutputPath>
<EfcptConfigDbContextOutputPath Condition="'$(EfcptConfigDbContextOutputPath)'==''"></EfcptConfigDbContextOutputPath>
<EfcptConfigSplitDbContext Condition="'$(EfcptConfigSplitDbContext)'==''"></EfcptConfigSplitDbContext>
<EfcptConfigUseSchemaFolders Condition="'$(EfcptConfigUseSchemaFolders)'==''"></EfcptConfigUseSchemaFolders>
<EfcptConfigUseSchemaNamespaces Condition="'$(EfcptConfigUseSchemaNamespaces)'==''"></EfcptConfigUseSchemaNamespaces>
<!-- Code generation section overrides -->
<EfcptConfigEnableOnConfiguring Condition="'$(EfcptConfigEnableOnConfiguring)'==''"></EfcptConfigEnableOnConfiguring>
<EfcptConfigGenerationType Condition="'$(EfcptConfigGenerationType)'==''"></EfcptConfigGenerationType>
<EfcptConfigUseDatabaseNames Condition="'$(EfcptConfigUseDatabaseNames)'==''"></EfcptConfigUseDatabaseNames>
<EfcptConfigUseDataAnnotations Condition="'$(EfcptConfigUseDataAnnotations)'==''"></EfcptConfigUseDataAnnotations>
<!-- NOTE: UseNullableReferenceTypes is set in the targets file (not here) for proper property evaluation order -->
<EfcptConfigUseInflector Condition="'$(EfcptConfigUseInflector)'==''"></EfcptConfigUseInflector>
<EfcptConfigUseLegacyInflector Condition="'$(EfcptConfigUseLegacyInflector)'==''"></EfcptConfigUseLegacyInflector>
<EfcptConfigUseManyToManyEntity Condition="'$(EfcptConfigUseManyToManyEntity)'==''"></EfcptConfigUseManyToManyEntity>
<EfcptConfigUseT4 Condition="'$(EfcptConfigUseT4)'==''"></EfcptConfigUseT4>
<EfcptConfigUseT4Split Condition="'$(EfcptConfigUseT4Split)'==''"></EfcptConfigUseT4Split>
<EfcptConfigRemoveDefaultSqlFromBool Condition="'$(EfcptConfigRemoveDefaultSqlFromBool)'==''"></EfcptConfigRemoveDefaultSqlFromBool>
<EfcptConfigSoftDeleteObsoleteFiles Condition="'$(EfcptConfigSoftDeleteObsoleteFiles)'==''"></EfcptConfigSoftDeleteObsoleteFiles>
<EfcptConfigDiscoverMultipleResultSets Condition="'$(EfcptConfigDiscoverMultipleResultSets)'==''"></EfcptConfigDiscoverMultipleResultSets>
<EfcptConfigUseAlternateResultSetDiscovery Condition="'$(EfcptConfigUseAlternateResultSetDiscovery)'==''"></EfcptConfigUseAlternateResultSetDiscovery>
<EfcptConfigT4TemplatePath Condition="'$(EfcptConfigT4TemplatePath)'==''"></EfcptConfigT4TemplatePath>
<EfcptConfigUseNoNavigations Condition="'$(EfcptConfigUseNoNavigations)'==''"></EfcptConfigUseNoNavigations>
<EfcptConfigMergeDacpacs Condition="'$(EfcptConfigMergeDacpacs)'==''"></EfcptConfigMergeDacpacs>
<EfcptConfigRefreshObjectLists Condition="'$(EfcptConfigRefreshObjectLists)'==''"></EfcptConfigRefreshObjectLists>
<EfcptConfigGenerateMermaidDiagram Condition="'$(EfcptConfigGenerateMermaidDiagram)'==''"></EfcptConfigGenerateMermaidDiagram>
<EfcptConfigUseDecimalAnnotationForSprocs Condition="'$(EfcptConfigUseDecimalAnnotationForSprocs)'==''"></EfcptConfigUseDecimalAnnotationForSprocs>
<EfcptConfigUsePrefixNavigationNaming Condition="'$(EfcptConfigUsePrefixNavigationNaming)'==''"></EfcptConfigUsePrefixNavigationNaming>
<EfcptConfigUseDatabaseNamesForRoutines Condition="'$(EfcptConfigUseDatabaseNamesForRoutines)'==''"></EfcptConfigUseDatabaseNamesForRoutines>
<EfcptConfigUseInternalAccessForRoutines Condition="'$(EfcptConfigUseInternalAccessForRoutines)'==''"></EfcptConfigUseInternalAccessForRoutines>
<!-- Type mappings section overrides -->
<EfcptConfigUseDateOnlyTimeOnly Condition="'$(EfcptConfigUseDateOnlyTimeOnly)'==''"></EfcptConfigUseDateOnlyTimeOnly>
<EfcptConfigUseHierarchyId Condition="'$(EfcptConfigUseHierarchyId)'==''"></EfcptConfigUseHierarchyId>
<EfcptConfigUseSpatial Condition="'$(EfcptConfigUseSpatial)'==''"></EfcptConfigUseSpatial>
<EfcptConfigUseNodaTime Condition="'$(EfcptConfigUseNodaTime)'==''"></EfcptConfigUseNodaTime>
<!-- Replacements section overrides -->
<EfcptConfigPreserveCasingWithRegex Condition="'$(EfcptConfigPreserveCasingWithRegex)'==''"></EfcptConfigPreserveCasingWithRegex>
</PropertyGroup>
</Project>