You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/msbuild/common-msbuild-project-properties.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -130,11 +130,11 @@ ms.subservice: msbuild
130
130
---
131
131
# Common MSBuild project properties
132
132
133
-
The following table lists frequently used properties that are defined in the Visual Studio project files or included in *.targets* files that MSBuild provides.
133
+
The following table lists frequently used properties that are defined in the Visual Studio project files or included in `.targets` files that MSBuild provides.
134
134
135
135
Properties provided by the .NET SDK are documented at [MSBuild reference for Microsoft.Net.Sdk](/dotnet/core/project-sdk/msbuild-props).
136
136
137
-
Project files in Visual Studio (*.csproj*, *.vbproj*, *.vcxproj*, and others) contain MSBuild XML code that runs when you build a project by using the IDE. Projects typically import one or more *.targets* files to define their build process. For more information, see [MSBuild .targets files](../msbuild/msbuild-dot-targets-files.md).
137
+
Project files in Visual Studio (`.csproj`, `.vbproj`, `.vcxproj`, and others) contain MSBuild XML code that runs when you build a project by using the IDE. Projects typically import one or more `.targets` files to define their build process. For more information, see [MSBuild .targets files](../msbuild/msbuild-dot-targets-files.md).
138
138
139
139
When setting property values, keep in mind that common properties may be set, reset, or used in a number of imported files. Therefore, it matters where you set a property--in your project file, in *Directory.Build.props*, or in another imported file. If you're setting a property somewhere and not getting the expected result, consider where and how the property is changed or used in all the files imported by your project, including imports that are added implicitly when you're using the `Sdk` attribute. See [Choose between adding properties to a .props or .targets file](customize-your-build.md#choose-between-adding-properties-to-a-props-or-targets-file). Preprocessing can help with this (see the `/preprocess` or `/pp` command-line option at [MSBuild command-line reference](./msbuild-command-line-reference.md)).
140
140
@@ -171,8 +171,8 @@ When setting property values, keep in mind that common properties may be set, re
171
171
172
172
| Property or parameter name | Project types | Description |
173
173
|------------------------------------| - | - |
174
-
| DebugSymbols | All | A boolean value that indicates whether symbols are generated by the build.<br /><br /> Setting **-p:DebugSymbols=false** on the command line disables generation of program database (*.pdb*) symbol files. |
175
-
| DebugType | All | Defines the level of debug information that you want generated. Valid values are "full," "pdbonly," "portable", "embedded", and "none."|
174
+
| DebugSymbols | All | A boolean value that indicates whether symbols are generated by the build.<br /><br /> Setting **-p:DebugSymbols=false** on the command line disables generation of program database (`.pdb`) symbol files. |
175
+
| DebugType | All | Defines the level of debug information that you want generated. Valid values are `full`, `pdbonly`, `portable`, `embedded`, and `none`.|
176
176
| DefineConstants | .NET | Defines conditional compiler constants. Symbol/value pairs are separated by semicolons and are specified by using language-dependent syntax:<br /><br /> C#: `symbol1; symbol2`<br /><br /> Visual Basic: `symbol1 = value1, symbol2 = value2`<br /><br /> The property is equivalent to the `/define` compiler switch. |
177
177
| DefineDebug | All | A boolean value that indicates whether you want the DEBUG constant defined. |
178
178
| DefineTrace | All | A boolean value that indicates whether you want the TRACE constant defined. |
@@ -185,12 +185,12 @@ When setting property values, keep in mind that common properties may be set, re
185
185
186
186
| Property or parameter name | Project types | Description |
187
187
|------------------------------------| - | - |
188
-
| ErrorReport | .NET | Specifies how the compiler task should report internal compiler errors. Valid values are "prompt," "send," or "none." This property is equivalent to the `/errorreport` compiler switch. |
188
+
| ErrorReport | .NET | Specifies how the compiler task should report internal compiler errors. Valid values are `prompt`, `send`, or `none`. This property is equivalent to the `/errorreport` compiler switch. |
189
189
| ExcludeDeploymentUrl | .NET | The [GenerateDeploymentManifest task](../msbuild/generatedeploymentmanifest-task.md) adds a deploymentProvider tag to the deployment manifest if the project file includes any of the following elements:<br /><br /> - UpdateUrl<br />- InstallUrl<br />- PublishUrl<br /><br /> Using ExcludeDeploymentUrl, however, you can prevent the deploymentProvider tag from being added to the deployment manifest even if any of the above URLs are specified. To do this, add the following property to your project file:<br /><br /> `<ExcludeDeploymentUrl>true</ExcludeDeploymentUrl>` <br /><br />**Note:** ExcludeDeploymentUrl isn't exposed in the Visual Studio IDE and can be set only by manually editing the project file. Setting this property doesn't affect publishing within Visual Studio; that is, the deploymentProvider tag will still be added to the URL specified by PublishUrl. |
190
190
| FileAlignment | .NET | Specifies, in bytes, where to align the sections of the output file. Valid values are 512, 1024, 2048, 4096, 8192. This property is equivalent to the `/filealignment` compiler switch. |
191
191
| FrameworkPathOverride | Visual Basic | Specifies the location of *mscorlib.dll* and *microsoft.visualbasic.dll*. This parameter is equivalent to the `/sdkpath` switch of the *vbc.exe* compiler. |
192
-
| GenerateDocumentationFile | .NET | A boolean parameter that indicates whether documentation is generated by the build. If `true`, the build generates documentation information and puts it in an *.xml* file together with the name of the executable file or library that the build task created. |
193
-
| GenerateFullPaths | C# | Generate full paths for filenames in output by using the [-fullpaths](/dotnet/csharp/language-reference/compiler-options/fullpaths-compiler-option) compiler option. |
192
+
| GenerateDocumentationFile | .NET | A boolean parameter that indicates whether documentation is generated by the build. If `true`, the build generates documentation information and puts it in an `.xml` file together with the name of the executable file or library that the build task created. |
193
+
| GenerateFullPaths | C# | Generate full paths for filenames in output by using the [`-fullpaths`](/dotnet/csharp/language-reference/compiler-options/fullpaths-compiler-option) compiler option. |
194
194
| GenerateResourceUsePreserializedResources | .NET | When MSBuild reads `.resx` files and generates `.resources` files, indicates whether to use the preserialized resources instead of deserializing and then reserializing each resource (for backward compatibility with .NET Framework). |
195
195
| GenerateSerializationAssemblies | .NET | Indicates whether XML serialization assemblies should be generated by *SGen.exe*, which can be set to on, auto, or off. This property is used for assemblies that target .NET Framework only. To generate XML serialization assemblies for .NET Standard or .NET Core assemblies, reference the *Microsoft.XmlSerializer.Generator* NuGet package. |
196
196
@@ -215,24 +215,24 @@ When setting property values, keep in mind that common properties may be set, re
215
215
| NoWarn | .NET | Suppresses the specified warnings. Only the numeric part of the warning identifier must be specified. Multiple warnings are separated by semicolons. This parameter corresponds to the `/nowarn` switch of the compilers. |
216
216
| NoWin32Manifest | .NET | A boolean value that indicates whether User Account Control (UAC) manifest information will be embedded in the application's executable. Applies only to Visual Studio projects targeting Windows Vista. In projects deployed using ClickOnce and Registration-Free COM, this element is ignored. `False` (the default value) specifies that User Account Control (UAC) manifest information be embedded in the application's executable. `True` specifies that UAC manifest information not be embedded.<br /><br /> This property applies only to Visual Studio projects targeting Windows Vista. In projects deployed using ClickOnce and Registration-Free COM, this property is ignored.<br /><br /> You should add NoWin32Manifest only if you don't want Visual Studio to embed any manifest information in the application's executable; this process is called *virtualization*. To use virtualization, set `<ApplicationManifest>` in conjunction with `<NoWin32Manifest>` as follows:<br /><br /> - For Visual Basic projects, remove the `<ApplicationManifest>` node. (In Visual Basic projects, `<NoWin32Manifest>` is ignored when an `<ApplicationManifest>` node exists.)<br />- For C# projects, set `<ApplicationManifest>` to `False` and `<NoWin32Manifest>` to `True`. (In C# projects, `<ApplicationManifest>` overrides `<NoWin32Manifest>`.)<br /> This property is equivalent to the `/nowin32manifest` compiler switch of *vbc.exe*. |
217
217
| Optimize | .NET | A boolean value that when set to `true`, enables compiler optimizations. This property is equivalent to the `/optimize` compiler switch. |
218
-
| OptionCompare | VisualBasic | Specifies how string comparisons are made. Valid values are "binary" or "text." This property is equivalent to the `/optioncompare` compiler switch of *vbc.exe*. |
218
+
| OptionCompare | VisualBasic | Specifies how string comparisons are made. Valid values are `binary` or `text`. This property is equivalent to the `/optioncompare` compiler switch of *vbc.exe*. |
219
219
| OptionExplicit | Visual Basic | A boolean value that when set to `true`, requires explicit declaration of variables in the source code. This property is equivalent to the `/optionexplicit` compiler switch. |
220
220
| OptionInfer | Visual Basic | A boolean value that when set to `true`, enables type inference of variables. This property is equivalent to the `/optioninfer` compiler switch. |
221
221
| OptionStrict | Visual Basic | A boolean value that when set to `true`, causes the build task to enforce strict type semantics to restrict implicit type conversions. This property is equivalent to the `/optionstrict` switch of the *vbc.exe* compiler. |
222
-
| OutDir | All | Indicates the final output location for the project or solution. When building a solution, OutDir can be used to gather multiple project outputs in one location. In addition, OutDir is included in AssemblySearchPaths used for resolving references. For example, *bin\Debug*. |
222
+
| OutDir | All | Indicates the final output location for the project or solution. When you build a solution, OutDir can be used to gather multiple project outputs in one location. In addition, OutDir is included in AssemblySearchPaths used for resolving references. For example, *bin\Debug*. |
223
223
| OutputPath | All | Specifies the path to the output directory, relative to the project directory, for example, *bin\Debug* or *bin\Debug\\$(Platform)* in non-AnyCPU builds.|
224
224
| OutputType | All | Specifies the file format of the output file. This parameter can have one of the following values:<br /><br /> - Library. Creates a code library. (Default value.)<br />- Exe. Creates a console application.<br />- Module. Creates a module.<br />- Winexe. Creates a Windows-based program.<br /><br /> For C# and Visual Basic, this property is equivalent to the `/target` switch. The output type can be automatically overridden by inferencing. See [OutputType set to WinExe for WPF and WinForms apps](/dotnet/core/compatibility/sdk/5.0/automatically-infer-winexe-output-type). Disable inferencing by setting `DisableWinExeOutputInference` to `true`. |
225
225
| OverwriteReadOnlyFiles | All | A boolean value that indicates whether you want to enable the build to overwrite read-only files or trigger an error. |
226
226
227
227
| Property or parameter name | Project types | Description |
228
228
|------------------------------------| - | - |
229
229
| PathMap | .NET | Specifies how to map physical paths to source path names output by the compiler. This property is equivalent to the `/pathmap` switch of the compilers. |
230
-
| PdbFile | .NET | The file name of the *.pdb* file that you're emitting. This property is equivalent to the `/pdb` switch of the *csc.exe* compiler. |
231
-
| Platform | All | The operating system you're building for. Examples for .NET Framework builds are "Any CPU", "x86", and "x64". |
232
-
| ProcessorArchitecture | .NET | The processor architecture that is used when assembly references are resolved. Valid values are "msil," "x86," "amd64," or "ia64."|
230
+
| PdbFile | .NET | The file name of the `.pdb` file that you're emitting. This property is equivalent to the `/pdb` switch of the *csc.exe* compiler. |
231
+
| Platform | All | The operating system you're building for. Examples for .NET Framework builds are `Any CPU`, `x86`, and `x64`. |
232
+
| ProcessorArchitecture | .NET | The processor architecture that is used when assembly references are resolved. Valid values are `msil`, `x86`, `amd64`, or `ia64`.|
233
233
| ProduceOnlyReferenceAssembly | .NET | A boolean value that instructs the compiler to emit only a reference assembly rather than compiled code. Can't be used in conjunction with `ProduceReferenceAssembly`. This property corresponds to the `/refonly` switch of the *vbc.exe* and *csc.exe* compilers. |
234
234
| ProduceReferenceAssembly | .NET | A boolean value that when set to `true` enables production of [reference assemblies](/dotnet/standard/assembly/reference-assemblies) for the current assembly. `Deterministic` should be `true` when using this feature. This property corresponds to the `/refout` switch of the *vbc.exe* and *csc.exe* compilers. |
235
-
| RegisterAssemblyMSBuildArchitecture | Windows only | Specifies the default architecture for which the managed DLL is registered. This property is useful because COM uses the Windows registry to store the registrations in architecture-specific hives. For example, on a Windows system, an AnyCPU managed assembly can have its types registered in the 64-bit hive and/or in the 32-bit (WoW) hive, and the build uses this property to determine which architecture-specific registry hive to use. Valid values include "x86," "x64," and "ARM64."|
235
+
| RegisterAssemblyMSBuildArchitecture | Windows only | Specifies the default architecture for which the managed DLL is registered. This property is useful because COM uses the Windows registry to store the registrations in architecture-specific hives. For example, on a Windows system, an AnyCPU managed assembly can have its types registered in the 64-bit hive and/or in the 32-bit (WoW) hive, and the build uses this property to determine which architecture-specific registry hive to use. Valid values include `x86`, `x64`, and `ARM64`.|
236
236
| RegisterForCOMInterop | Windows only | Indicates that your managed application will expose a COM object (a COM callable wrapper). See [Build page - Output section](../ide/reference/build-page-project-designer-csharp.md). This setting affects only the machine on which the project is building. If you're deploying to other machines, call [regasm.exe](/dotnet/framework/tools/regasm-exe-assembly-registration-tool) to register the assembly on the target machine.|
237
237
| RemoveIntegerChecks | Visual Basic | A boolean value that indicates whether to disable integer overflow error checks. The default value is `false`. This property is equivalent to the `/removeintchecks` switch of the *vbc.exe* compiler. |
238
238
| RootNamespace | All | The root namespace to use when you name an embedded resource. This namespace is part of the embedded resource manifest name. |
@@ -249,15 +249,15 @@ When setting property values, keep in mind that common properties may be set, re
249
249
| Satellite_Flags | .NET | Specifies a value for the Flags field in the satellite assembly. |
250
250
| Satellite_GenerateFullPaths | .NET | Causes the build task to use absolute paths for any files reported in an error message. |
251
251
| Satellite_LinkResource | .NET | Links the specified resource files to a satellite assembly. |
252
-
| Satellite_MainEntryPoint | .NET | Specifies the fully-qualified name (that is, class.method) of the method to use as an entry point when a module is converted to an executable file during satellite assembly generation. |
252
+
| Satellite_MainEntryPoint | .NET | Specifies the fullyqualified name (that is, class.method) of the method to use as an entry point when a module is converted to an executable file during satellite assembly generation. |
253
253
| Satellite_ProductName | .NET | Specifies a string for the Product field in the satellite assembly. |
254
254
| Satellite_ProductVersion | .NET | Specifies a string for the ProductVersion field in the satellite assembly. |
255
255
| Satellite_TargetType | .NET | Specifies the file format of the satellite assembly output file as "library," "exe," or "win." The default value is "library." |
256
256
| Satellite_Title | .NET | Specifies a string for the Title field in the satellite assembly. |
257
257
| Satellite_Trademark | .NET | Specifies a string for the Trademark field in the satellite assembly. |
258
258
| Satellite_Version | .NET | Specifies the version information for the satellite assembly. |
259
-
| Satellite_Win32Icon | .NET | Inserts an *.ico* icon file in the satellite assembly. |
260
-
| Satellite_Win32Resource | .NET | Inserts a Win32 resource (*.res* file) into the satellite assembly. |
259
+
| Satellite_Win32Icon | .NET | Inserts an `.ico` icon file in the satellite assembly. |
260
+
| Satellite_Win32Resource | .NET | Inserts a Win32 resource (`.res` file) into the satellite assembly. |
261
261
| SGenToolPath | .NET | An optional tool path that indicates where to obtain *SGen.exe* when the current version of *SGen.exe* is overridden. |
262
262
263
263
| Property or parameter name | Project types | Description |
Copy file name to clipboardExpand all lines: docs/msbuild/errors/msb1004.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ This article describes the MSB1004 error code.
39
39
-->
40
40
## Description
41
41
42
-
This errors occurs when the MSBuild command line contains a `-targets` or `-t` switch, which is used to request a specific target to build, but no target was specified.
42
+
This error occurs when the MSBuild command line contains a `-targets` or `-t` switch, which is used to request a specific target to build, but no target was specified.
Copy file name to clipboardExpand all lines: docs/msbuild/errors/msb3178.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ This article describes the MSB3178 diagnostic code.
37
37
-->
38
38
## Description
39
39
40
-
This warning occurs when MSBuild tries to process a manifest file, but encountered a file that looks like an assembly that was specified as an ordinary file, instead of using the correct XML structure for an assembly. Assembly manifests used in ClickOnce deployment for .NET applications are XML files that contain a XML-encoded of the contents of an application, which might include assemblies and files. Assemblies are specified using the `assembly` element, which also includes child elements such as as `assemblyInformation`; plain files are specified using the `file` element.
40
+
This warning occurs when MSBuild tries to process a manifest file, but encountered a file that looks like an assembly that was specified as an ordinary file, instead of using the correct XML structure for an assembly. Assembly manifests used in ClickOnce deployment for .NET applications are XML files that contain an XML-encoded of the contents of an application, which might include assemblies and files. Assemblies are specified using the `assembly` element, which also includes child elements such as `assemblyInformation`; plain files are specified using the `file` element.
41
41
42
42
In Visual Studio when you generate a ClickOnce manifest using the Publish process, you might get this warning if you specify a DLL or EXE with the `Build Action` set to `Content`. In Visual Studio, `Content` means add something as an ordinary file, not as an assembly. In a project file, `Content` is an item group. If the item group contains files that look like assemblies, you get this warning.
0 commit comments