Is there a way to list all defined variables in an executing MSBuild project?
I'm trying to figure out exactly what paths and variables are set (to pass into WiX), and it's difficult to debug everything. Essentially, I would like something equivelent to running set
at the command line. Example:
C:\Users\dsokol>set
ALLUSERSP开发者_运维百科ROFILE=C:\ProgramData
APPDATA=C:\Users\dsokol\AppData\Roaming
asl.log=Destination=file
CLASSPATH=.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
...
Except that I would like it to list out all of the MSBuild variables (such as Target, OutDir?, and all the crap I've defined in the top of the XML file. Ideally:
$(OutDir)="C:\MyOutDir\bin"
$(ProductVersion)="6.1.0"
$(Platform)="Win32"
Does such a thing exist?
Have you tried running msbuild with with /v:diag command line option? This prints out all of the properties which includes the environment variables and the properties that have been set.
I bingoogled everywhere and couldn't find anything about existing code that does it, so I came with my own approach.
First - you build a project with msbuild using the preprocess/pp parameter to put all the linked projects to a single file.
C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /verbosity:detailed /fl /p:Configuration=Debug /p:Platform=x86 MyApp.csproj /pp:flatproject.proj >detailedlog.txt
That already gives you a single project xml file with all properties that were set (perhaps except the environment variables or the ones passed with the /p parameter to msbuild or perhaps some others that might be set otherwise). For me that's over 800 properties. Now if you want to compile a list in alphabetical order - you could do that with a little bit of code - in my case C# and XAML:
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication4"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBox
x:Name="tb"
VerticalAlignment="Stretch"
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible"/>
</Grid>
</Window>
C# bit:
public partial class MainWindow : Window
{
Dictionary<string,string> properties = new Dictionary<string, string>();
public MainWindow()
{
InitializeComponent();
var xml = new XmlDocument();
xml.LoadXml(File.ReadAllText(@"c:\git\Photos\Photos\AppStubCS\AppStubCS.Windows\x.prop"));
PopulateProperties(xml);
SortAndOutput();
}
private void SortAndOutput()
{
var sb = new StringBuilder();
foreach (var kvp in properties.OrderBy(kvp => kvp.Key))
{
sb.AppendFormat("{0}: {1}\r\n", kvp.Key, kvp.Value);
}
this.tb.Text = sb.ToString();
}
private void PopulateProperties(XmlNode xml)
{
if (xml.Name == "PropertyGroup")
{
foreach (var childNode in xml.ChildNodes.OfType<XmlElement>())
{
var name = childNode.Name;
var val = childNode.InnerText;
if (properties.ContainsKey(name))
{
properties[name] = val;
}
else
{
properties.Add(name, val);
}
}
}
else
{
foreach (var childNode in xml.ChildNodes.OfType<XmlElement>())
{
PopulateProperties(childNode);
}
}
}
}
My list:
_AdjustedPlatform
_AppContainsManagedCodeForInjection
_AppContainsManagedCodeInItsClosure
_AppxBundlePlatformsForNamingIntermediate
_AppxManifestXmlFileName
_AppxMSBuildTaskAssembly
_AppxMSBuildToolsPath
_AppxPackageConfiguration
_AssemblyTimestampAfterCompile
_AssemblyTimestampBeforeCompile
_ContinueOnError
_ConvertedPlatform
_CoreRuntimeMSBuildTaskAssembly
_CoreRuntimePackageId
_CreateAppxBundleFilesDependsOn
_CreateAppxBundlePlatformSpecificArtifactsDependsOn
_CreateAppxPackageDependsOn
_CustomAppxManifestUsed
_DebugSymbolsProduced
_DeploymentApplicationDir
_DeploymentApplicationFolderName
_DeploymentApplicationManifestIdentity
_DeploymentApplicationUrl
_DeploymentBaseManifest
_DeploymentBuiltMinimumRequiredVersion
_DeploymentBuiltUpdateInterval
_DeploymentBuiltUpdateIntervalUnits
_DeploymentComponentsUrl
_DeploymentCopyApplicationManifest
_DeploymentDeployManifestIdentity
_DeploymentFileMappingExtension
_DeploymentManifestType
_DeploymentManifestVersion
_DeploymentPublishableProjectDefault
_DeploymentTargetApplicationManifestFileName
_DeploymentUrl
_DocumentationFileProduced
_EmbedFileResfilePath
_ExtractPlatforms
_FileNameToRemove
_FileToBuild
_FindDependencies
_FrameworkSdkNames
_GatekeeperCmd
_GatekeeperPlatformTarget
_GCTODIKeepDuplicates
_GCTODIKeepMetadata
_GenerateAppxManifestDependsOn
_GenerateAppxPackageBaseDependsOn
_GenerateAppxPackageDependsOn
_GenerateAppxPackageRecipeDependsOn
_GenerateAppxUploadPackageRecipeDependsOn
_GenerateBindingRedirectsIntermediateAppConfig
_GenerateProjectPriFileDependsOn
_GetChildProjectCopyToOutputDirectoryItems
_GetPackagePropertiesDependsOn
_IlcBuildType
_IlcExePath
_IlcExitCode
_IlcExternalReferencePath
_IlcFrameworkDependencies
_IlcInputPath
_IlcIntermediatePath
_IlcInvocationParameters
_IlcKeepIntermediates
_IlcMinBehavioralExitCode
_IlcParameters
_IlcResponseFile
_IlcRootPath
_IlcSharedAssemblyDefinitionFile
_IlcSharedAssemblyRootPath
_IlcSuppressPDBWarnings
_IlcVerbosity
_IntermediateWindowsMetadataPath
_InvalidConfigurationError
_InvalidConfigurationMessageText
_InvalidConfigurationWarning
_LayoutResfilesPath
_MultipleQualifiersPerDimensionFound
_MultipleQualifiersPerDimensionFoundPath
_NetCoreFrameworkInjectionNeeded
_NuGetRuntimeIdentifierPlatformTargetSuffix
_NuGetRuntimeIdentifierWithoutAot
_NuGetTargetFallbackMoniker
_OriginalConfiguration
_OriginalPlatform
_PackagingOutputsIncludesFramework
_PdbOutputRoot
_PlatformTargetForCoreRuntime
_PlatformTargetForIlcVersion
_PriConfigXmlPath
_PriResfilesPath
_ProjectArchitectureOutput
_ProjectArchitecturesFilePath
_ProjectDefaultTargets
_ProjectNPlatformSupported
_ProjectNProjectSupported
_ProjectNToolchainEnabled
_ProjectPriFileName
_ProjectPriFullPathOriginal
_ProjectSpecificProjectJsonFile
_QualifiersPath
_Rebuilding
_ResolveReferenceDependencies
_ResourcesResfilesPath
_ReverseMapProjectPriDirectory
_ReverseMapProjectPriFileName
_ReverseMapProjectPriUploadDirectory
_ReverseMapProjectPriUploadFileName
_SGenDllCreated
_SGenDllName
_SGenGenerateSerializationAssembliesConfig
_ShouldUnsetParentConfigurationAndPlatform
_SolutionConfigurationContentsToUse
_StoreManifestSchemaDir
_SupportEmbedFileResources
_SupportXbfAsEmbedFileResources
_TargetPlatform
_TargetPlatformIsWindowsPhone
_TargetPlatformMetadataPath
_TargetsCoreRuntime
_TargetToBuild
_TransformedAppxManifestXmlFile
_TransformedProjectPriFullPath
_WindowsMetadataOutputPath
_WindowsSDKSignToolPath
_WinMDDebugSymbolsOutputPath
_WinMDDocFileOutputPath
_WireUpCoreRuntimeExitCode
_WireUpCoreRuntimeMsg
_WireUpCoreRuntimeTaskExecuted
_XamlTemporaryAssemblyPath_
AddAppConfigToBuildOutputs
AddBuildInfoToAssembly
AddSyntheticProjectReferencesForSolutionDependencies
AfterBuildLinkTargets
AllOutputGroupsDependsOn
AllowedPlatformsForProjectN
AllowedReferenceAssemblyFileExtensions
AllowedReferenceRelatedFileExtensions
AllowLocalNetworkLoopback
AltPlatformTarget
AlwaysUseNumericalSuffixInItemNames
AppConfig
AppConfigForCompiler
AppDesignerFolder
AppLocalMetadataPath
AppxBundle
AppxBundleAutoResourcePackageQualifiers
AppxBundleDefaultValueUsed
AppxBundleDir
AppxBundleExtension
AppxBundleFolderSuffix
AppxBundleMainPackageFileMapGeneratedFilesListPath
AppxBundleMainPackageFileMapIntermediatePath
AppxBundleMainPackageFileMapIntermediatePrefix
AppxBundleMainPackageFileMapIntermediatePriPath
AppxBundleMainPackageFileMapPath
AppxBundleMainPackageFileMapPrefix
AppxBundleMainPackageFileMapSuffix
AppxBundleManifestVersion
AppxBundleOutput
AppxBundlePlatforms
AppxBundlePlatformsForNaming
AppxBundlePlatformSpecificArtifactsListPath
AppxBundlePlatformSpecificUploadArtifactsListPath
AppxBundlePriConfigXmlForMainPackageFileMapFileName
AppxBundlePriConfigXmlForSplittingFileName
AppxBundleProducingPlatform
AppxBundleResourcePacksProducingPlatform
AppxBundleSplitResourcesGeneratedFilesListPath
AppxBundleSplitResourcesPriPath
AppxBundleSplitResourcesPriPrefix
AppxBundleSplitResourcesQualifiersPath
AppxCopyLocalFilesOutputGroupIncludeXmlFiles
AppxDefaultHashAlgorithmId
AppxDefaultResourceQualifiers
AppxDefaultResourceQualifiers_UAP
AppxDefaultResourceQualifiers_Windows_80
AppxDefaultResourceQualifiers_Windows_81
AppxDefaultResourceQualifiers_Windows_82
AppxDefaultResourceQualifiers_Windows_Phone
AppxFilterOutUnusedLanguagesResourceFileMaps
AppxGeneratePackageRecipeEnabled
AppxGeneratePriEnabled
AppxGeneratePrisForPortableLibrariesEnabled
AppxGetPackagePropertiesEnabled
AppxHarvestWinmdRegistration
AppxHashAlgorithmId
AppxIntermediateExtension
AppxLayoutDir
AppxLayoutFolderName
AppxMainPackageOutput
AppxMSBuildTaskAssembly
AppxMSBuildToolsPath
AppxOSMaxVersionTested
AppxOSMaxVersionTestedReplaceManifestVersion
AppxOSMinVersion
AppxOSMinVersionReplaceManifestVersion
AppxPackage
AppxPackageAllowDebugFrameworkReferencesInManifest
AppxPackageArtifactsDir
AppxPackageDir
AppxPackageDirInProjectDir
AppxPackageDirName
AppxPackageDirWasSpecified
AppxPackageExtension
AppxPackageFileMap
AppxPackageIncludePrivateSymbols
AppxPackageIsForStore
AppxPackageName
AppxPackageNameNeutral
AppxPackageOutput
AppxPackagePipelineVersion
AppxPackageRecipe
AppxPackageSigningEnabled
AppxPackageTestDir
AppxPackageValidationEnabled
AppxPackagingArchitecture
AppxPackagingInfoFile
AppxPPPrefix
AppxPrependPriInitialPath
AppxPriConfigXmlDefaultSnippetPath
AppxPriConfigXmlPackagingSnippetPath
AppxPriInitialPath
AppxResourcePackOutputBase
AppxSkipUnchangedFiles
AppxStoreContainer
AppxStoreContainerExtension
AppxStrictManifestValidationEnabled
AppxSymbolPackageEnabled
AppxSymbolPackageExtension
AppxSymbolPackageOutput
AppxSymbolStrippedDir
AppxTestLayoutEnabled
AppxUploadBundleDir
AppxUploadBundleMainPackageFileMapGeneratedFilesListPath
AppxUploadBundleMainPackageFileMapIntermediatePath
AppxUploadBundleMainPackageFileMapIntermediatePriPath
AppxUploadBundleMainPackageFileMapPath
AppxUploadBundleOutput
AppxUploadBundlePriConfigXmlForMainPackageFileMapFileName
AppxUploadBundlePriConfigXmlForSplittingFileName
AppxUploadBundleSplitResourcesGeneratedFilesListPath
AppxUploadBundleSplitResourcesPriPath
AppxUploadBundleSplitResourcesQualifiersPath
AppxUploadLayoutDir
AppxUploadLayoutFolderName
AppxUploadMainPackageOutput
AppxUploadPackageArtifactsDir
AppxUploadPackageDir
AppxUploadPackageFileMap
AppxUploadPackageOutput
AppxUploadPackageRecipe
AppxUploadPackagingInfoFile
AppxUploadSymbolPackageOutput
AppxUploadSymbolStrippedDir
AppxUseHardlinksIfPossible
AppxUseResourceIndexerApi
AppxValidateAppxManifest
AppxValidateStoreManifest
AssemblyFile
AssemblyFoldersSuffix
AssemblyName
AssemblySearchPaths
AssignTargetPathsDependsOn
AutoIncrementPackageRevision
AutoUnifyAssemblyReferences
AvailablePlatforms
BaseIntermediateOutputPath
BaseNuGetRuntimeIdentifier
BeforeRunGatekeeperTargets
BuildAppxSideloadPackageForUap
BuildAppxUploadPackageForUap
BuildCompileAction
BuildDependsOn
BuildGenerateSourcesAction
BuildId
BuildInfoBinPath
BuildInfoConfigFileName
BuildInfoFileName
BuildInfoPath
BuildInfoResourceFileName
BuildInfoResourceLogicalName
BuildInfoTargets
BuildingInTeamBuild
BuildingProject
BuildInParallel
BuildLabel
BuildLinkAction
BuildProjectReferences
BuildTimestamp
BuiltProjectOutputGroupDependsOn
CAExcludePath
CanUseProjectN
CleanDependsOn
CleanFile
CleanPackageAction
CodeAnalysisApplyLogFileXsl
CodeAnalysisFailOnMissingRules
CodeAnalysisForceOutput
CodeAnalysisGenerateSuccessFile
CodeAnalysisIgnoreGeneratedCode
CodeAnalysisIgnoreInvalidTargets
CodeAnalysisIgnoreMissingIndirectReferences
CodeAnalysisInputAssembly
CodeAnalysisLogFile
CodeAnalysisModuleSuppressionsFile
CodeAnalysisOutputToConsole
CodeAnalysisOverrideRuleVisibilities
CodeAnalysisPath
CodeAnalysisQuiet
CodeAnalysisRuleDirectories
CodeAnalysisRuleSet
CodeAnalysisRuleSetDirectories
CodeAnalysisSaveMessagesToReport
CodeAnalysisSearchGlobalAssemblyCache
CodeAnalysisStaticAnalysisDirectory
CodeAnalysisSucceededFile
CodeAnalysisSummary
CodeAnalysisTargets
CodeAnalysisTimeout
CodeAnalysisTLogFile
CodeAnalysisTreatWarningsAsErrors
CodeAnalysisUpdateProject
CodeAnalysisUseTypeNameInSuppression
CodeAnalysisVerbose
CodeAnalysisVSSku
ComFilesOutputGroupDependsOn
CommonTargetsPath
CommonXamlResourcesDirectory
CompileDependsOn
CompileLicxFilesDependsOn
CompileTargetNameForTemporaryAssembly
ComputeIntermediateSatelliteAssembliesDependsOn
ComReferenceExecuteAsTool
ComReferenceNoClassMembers
Configuration
ConfigurationName
ConsiderPlatformAsProcessorArchitecture
ContentFilesProjectOutputGroupDependsOn
ContinueOnError
CopyBuildOutputToOutputDirectory
CopyLocalFilesOutputGroupDependsOn
CopyNuGetImplementations
CopyOutputSymbolsToOutputDirectory
CopyWinmdArtifactsOutputGroupDependsOn
CoreBuildDependsOn
CoreCleanDependsOn
CoreCompileDependsOn
CoreResGenDependsOn
CoreRuntimeSDKLocation
CoreRuntimeSDKName
CreateCustomManifestResourceNamesDependsOn
CreateHardLinksForCopyAdditionalFilesIfPossible
CreateHardLinksForCopyFilesToOutputDirectoryIfPossible
CreateHardLinksForCopyLocalIfPossible
CreateHardLinksForPublishFilesIfPossible
CreateManifestResourceNamesDependsOn
CreateSatelliteAssembliesDependsOn
CscToolPath
CSharpCoreTargetsPath
CSharpTargetsPath
CURRENTVSINSTALLDIR
CustomAfterMicrosoftCommonProps
CustomAfterMicrosoftCommonTargets
CustomAfterMicrosoftCSharpTargets
CustomBeforeMicrosoftCommonProps
CustomBeforeMicrosoftCommonTargets
CustomBeforeMicrosoftCSharpTargets
CustomVersionNumber_Build
CustomVersionNumber_Build2
CustomVersionNumber_FullVersion
CustomVersionNumber_Major
CustomVersionNumber_Minor
CustomVersionNumber_Revision
CVN_Len
DebugSymbols
DebugSymbolsProjectOutputGroupDependsOn
DebugType
DefaultLanguage
DefaultLanguageSourceExtension
DeferredValidationErrorsFileName
DefineCommonCapabilities
DefineCommonItemSchemas
DefineCommonReferenceSchemas
DefineConstants
DelaySign
DesignTimeAssemblySearchPaths
DesignTimeAutoUnify
DesignTimeFindDependencies
DesignTimeFindRelatedFiles
DesignTimeFindSatellites
DesignTimeFindSerializationAssemblies
DesignTimeIgnoreVersionForFrameworkReferences
DesignTimeIntermediateOutputPath
DesignTimeResolveAssemblyReferencesDependsOn
DesignTimeResolveAssemblyReferencesStateFile
DesignTimeSilentResolution
DevEnvDir
DisableXbfGeneration
DocumentationProjectOutputGroupDependsOn
DotNetNativeRuntimeSDKMoniker
DotNetNativeSharedAssemblySDKMoniker
DotNetNativeTargetConfiguration
DotNetNativeVCLibsDependencySDKMoniker
DTARUseReferencesFromProject
EmbeddedWin32Manifest
EnableAppLocalFXWorkaround
EnableDotNetNativeCompatibleProfile
EnableFavorites
EnableNDE
EnableSigningChecks
ErrorEndLocation
ErrorReport
ExpandSDKAllowedReferenceExtensions
ExpandSDKReferencesDependsOn
ExportWinMDFile
ExtensionsToDeleteOnClean
ExtPackagesRoot
FacadeWinmdPath
FaceNextSdkRoot
FaceSdk_Bin_Path
FaceSdk_Inc_Path
FaceSdkWrapperRoot
FakesBinPath
FakesCommandLineArguments
FakesCompilationProperties
FakesContinueOnError
FakesGenerateBeforeBuildDependsOn
FakesImported
FakesIntermediatePath
FakesMSBuildPath
FakesOutputPath
FakesResolveAssemblyReferencesStateFile
FakesTargets
FakesTasks
FakesToolsPath
FakesVerbosity
FallbackCulture
FileAlignment
FinalAppxManifestName
FinalAppxPackageRecipe
FinalAppxUploadManifestName
FinalAppxUploadPackageRecipe
FinalDefineConstants
FindInvalidProjectReferences
FindInvalidProjectReferencesDependsOn
Framework20Dir
Framework30Dir
Framework35Dir
Framework40Dir
FrameworkDir
FrameworkInjectionLockFile
FrameworkInjectionPackagesDirectory
FrameworkPathOverride
FrameworkRegistryBase
FrameworkSDKDir
FullReferenceAssemblyNames
GenerateAdditionalSources
GenerateAppxPackageOnBuild
GenerateBindingRedirectsOutputType
GenerateBuildInfoConfigFile
GenerateClickOnceManifests
GenerateCompiledExpressionsTempFilePathForEditing
GenerateCompiledExpressionsTempFilePathForTypeInfer
GenerateCompiledExpressionsTempFilePathForValidation
GenerateManifestsDependsOn
GenerateResourceMSBuildArchitecture
GenerateResourceMSBuildRuntime
GenerateTargetFrameworkAttribute
GetCopyToOutputDirectoryItemsDependsOn
GetFrameworkPathsDependsOn
GetPackagingOutputsDependsOn
GetTargetPathDependsOn
GetTargetPathWithTargetPlatformMonikerDependsOn
HasSharedItems
HighEntropyVA
IlcIntermediateRootPath
IlcOutputPath
IlcParameters
ILCPDBDir
IlcTargetPlatformSdkLibPath
ImplicitlyExpandTargetFramework
ImplicitlyExpandTargetFrameworkDependsOn
ImplicitlyExpandTargetPlatform
Import_RootNamespace
ImportXamlTargets
IncludeBuiltProjectOutputGroup
IncludeComFilesOutputGroup
IncludeContentFilesProjectOutputGroup
IncludeCopyLocalFilesOutputGroup
IncludeCopyWinmdArtifactsOutputGroup
IncludeCustomOutputGroupForPackaging
IncludeDebugSymbolsProjectOutputGroup
IncludeDocumentationProjectOutputGroup
IncludeFrameworkReferencesFromNuGet
IncludeGetResolvedSDKReferences
IncludePriFilesOutputGroup
IncludeProjectPriFile
IncludeSatelliteDllsProjectOutputGroup
IncludeSDKRedistOutputGroup
IncludeServerNameInBuildInfo
IncludeSGenFilesOutputGroup
IncludeSourceFilesProjectOutputGroup
InProcessMakePriExtensionPath
InsertReverseMap
IntermediateOutputPath
IntermediateUploadOutputPath
InternalBuildOutDir
InternalBuildOutputPath
InteropOutputPath
Language
LayoutDir
LCMSBuildArchitecture
LoadTimeSensitiveProperties
LoadTimeSensitiveTargets
LocalAssembly
LocalEspcPath
LumiaPlatform
MakeAppxExeFullPath
MakePriExeFullPath
MakePriExtensionPath
MakePriExtensionPath_x64
ManagedWinmdInprocImplementation
MarkupCompilePass1DependsOn
MarkupCompilePass2DependsOn
MaxTargetPath
MergedOutputCodeAnalysisFile
MergeInputCodeAnalysisFiles
MetadataNamespaceUri
MicrosoftCommonPropsHasBeenImported
MinimumVisualStudioVersion
MrmSupportLibraryArchitecture
MsAppxPackageTargets
MSBuildAllProjects
MSBuildExtensionsPath64Exists
MsTestToolsTargets
NativeCodeAnalysisTLogFile
NetfxCoreRuntimeSettingsTargets
NetfxCoreRuntimeTargets
NoCompilerStandardLib
NonExistentFile
NoStdLib
NoWarn
NoWin32Manifest
NuGetProps
NuGetRuntimeIdentifier
NuGetTargetFrameworkMonikerToInject
NuGetTargetMoniker
NuGetTargetMonikerToInject
NuGetTargets
OnlyReferenceAndBuildProjectsEnabledInSolutionConfiguration
OnXamlPreCompileErrorTarget
Optimize
OsVersion
OutDir
OutDirWasSpecified
OutOfProcessMakePriExtensionPath
OutputPath
OutputType
OverwriteReadOnlyFiles
PackageAction
PackageCertificateKeyFile
PackagingDirectoryWritesLogPath
PackagingFileWritesLogPath
PdbCopyExeFullPath
PdbFile
PdbOutputDir
Platform
PlatformName
PlatformSpecificBundleArtifactsListDir
PlatformSpecificBundleArtifactsListDirInProjectDir
PlatformSpecificBundleArtifactsListDirName
PlatformSpecificBundleArtifactsListDirWasSpecified
PlatformSpecificUploadBundleArtifactsListDir
PlatformSpecificUploadBundleArtifactsListDirInProjectDir
PlatformTarget
PlatformTargetAsMSBuildArchitecture
PlatformTargetAsMSBuildArchitectureExplicitlySet
PostBuildEventDependsOn
PreBuildEventDependsOn
Prefer32Bit
PreferredUILang
Prep_ComputeProcessXamlFilesDependsOn
PrepareForBuildDependsOn
PrepareForRunDependsOn
PrepareLayoutDependsOn
PrepareLibraryLayoutDependsOn
PrepareResourceNamesDependsOn
PrepareResourcesDependsOn
PrevWarningLevel
PriIndexName
ProcessorArchitecture
ProcessorArchitectureAsPlatform
ProduceAppxBundle
ProgFiles32
ProjectDesignTimeAssemblyResolutionSearchPaths
ProjectDir
ProjectExt
ProjectFileName
ProjectFlavor
ProjectGuid
ProjectLockFile
ProjectName
ProjectNProfileEnabled
ProjectNSettingsTargets
ProjectNTargets
ProjectPath
ProjectPriFileName
ProjectPriFullPath
ProjectPriIndexName
ProjectPriUploadFullPath
ProjectTypeGuids
PublishableProject
PublishBuildDependsOn
PublishDependsOn
PublishDir
PublishOnlyDependsOn
PublishPipelineCollectFilesCore
RebuildDependsOn
RebuildPackageAction
RedirectionTarget
RegisterAssemblyMSBuildArchitecture
RegisterAssemblyMSBuildRuntime
RemoveAssemblyFoldersIfNoTargetFramework
ReportingServicesTargets
ResGenDependsOn
ResGenExecuteAsTool
ResgenToolPath
ResolveAssemblyReferencesDependsOn
ResolveAssemblyReferencesSilent
ResolveAssemblyReferencesStateFile
ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch
ResolveComReferenceMSBuildArchitecture
ResolveComReferenceSilent
ResolveComReferenceToolPath
ResolveNuGetPackageAssetsDependsOn
ResolveNuGetPackages
ResolveReferencesDependsOn
ResolveSDKReferencesDependsOn
RootNamespace
RunCodeAnalysisDependsOn
RunCodeAnalysisInputs
RunCodeAnalysisOnThisProject
RunDependsOn
RunMergeNativeCodeAnalysisDependsOn
RunNativeCodeAnalysisInputs
SafeIntDir
SatelliteDllsProjectOutputGroupDependsOn
SDKExtensionDirectoryRoot
SDKIdentifier
SDKRedistOutputGroupDependsOn
SDKReferenceDirectoryRoot
SDKReferenceRegistryRoot
SDKReferenceWarnOnMissingMaxPlatformVersion
SDKRefVersionToUse
SDKVersion
SDKVersionToUse
SGenFilesOutputGroupDependsOn
SGenMSBuildArchitecture
SGenShouldGenerateSerializer
SGenUseKeep
SGenUseProxyTypes
SharedGUID
ShouldMarkCertainSDKReferencesAsRuntimeOnly
ShouldUnsetParentConfigurationAndPlatform
SignAppxPackageExeFullPath
SignToolPath
SkipCopyUnchangedFiles
SkipILCompilation
SkipIntermediatePriGenerationForResourceFiles
SkipMergingFrameworkResources
SolutionDir
SolutionDirNoTrailingBackspace
SolutionExt
SolutionFileName
SolutionName
SolutionPath
SourceFilesProjectOutputGroupDependsOn
StandardBuildPipeline
StoreManifestName
StripPrivateSymbols
SubsystemVersion
SupportWindows81SDKs
SupportWindowsPhone81SDKs
SuppressWarningsInPass1
SyncLibsForDotNetNativeSharedFrameworkPackage
SynthesizeLinkMetadata
TargetCulture
TargetDeployManifestFileName
TargetDir
TargetedFrameworkDir
TargetedSDKArchitecture
TargetedSDKConfiguration
TargetExt
TargetFileName
TargetFrameworkAsMSBuildRuntime
TargetFrameworkDirectory
TargetFrameworkIdentifier
TargetFrameworkMoniker
TargetFrameworkMonikerAssemblyAttributesFileClean
TargetFrameworkMonikerAssemblyAttributesPath
TargetFrameworkMonikerAssemblyAttributeText
TargetFrameworkProfile
TargetFrameworkVersion
TargetName
TargetPath
TargetPlatformDisplayName
TargetPlatformIdentifier
TargetPlatformIdentifierWindows81
TargetPlatformIdentifierWindowsPhone81
TargetPlatformMinVersion
TargetPlatformMoniker
TargetPlatformRegistryBase
TargetPlatformResourceVersion
TargetPlatformSdkMetadataLocation
TargetPlatformSdkPath
TargetPlatformSdkRootOverride
TargetPlatformVersion
TargetPlatformVersionWindows81
TargetPlatformVersionWindowsPhone81
TargetPlatformWinMDLocation
TargetRuntime
TargetsPC
TargetsPhone
TaskKeyToken
TaskVersion
TreatWarningsAsErrors
UapAppxPackageBuildModeCI
UapAppxPackageBuildModeSideloadOnly
UapAppxPackageBuildModeStoreUpload
UapBuildPipeline
UapDefaultAssetScale
UnmanagedRegistrationDependsOn
UnmanagedUnregistrationDependsOn
UnregisterAssemblyMSBuildArchitecture
UnregisterAssemblyMSBuildRuntime
UseCommonOutputDirectory
UseDotNetNativeSharedAssemblyFrameworkPackage
UseDotNetNativeToolchain
UseHostCompilerIfAvailable
UseIncrementalAppxRegistration
UseNetNativeCustomFramework
UseOSWinMdReferences
UseRTMSdk
UseSharedCompilation
UseSourcePath
UseSubFolderForOutputDirDuringMultiPlatformBuild
UseTargetPlatformAsNuGetTargetMoniker
UseVSHostingProcess
Utf8Output
ValidatePresenceOfAppxManifestItemsDependsOn
VCInstallDir
VCLibs14SDKName
VCLibsTargetConfiguration
VersionIntDir
VisualStudioVersion
WarningLevel
WebReference_EnableLegacyEventingModel
WebReference_EnableProperties
WebReference_EnableSQLTypes
Win32Manifest
Windows8SDKInstallationFolder
WindowsAppContainer
WindowsSdkPath
WinMDExpOutputPdb
WinMDExpOutputWindowsMetadataFilename
WinMdExpToolPath
WinMdExpUTF8Ouput
WinMDOutputDocumentationFile
WireUpCoreRuntimeGates
WireUpCoreRuntimeOutputPath
WMSJSProject
WMSJSProjectDirectory
WorkflowBuildExtensionAssemblyName
WorkflowBuildExtensionKeyToken
WorkflowBuildExtensionVersion
XamlBuildTaskAssemblyName
XamlBuildTaskLocation
XamlBuildTaskPath
XAMLCompilerVersion
XAMLFingerprint
XAMLFingerprintIgnorePaths
XamlGenCodeFileNames
XamlGeneratedOutputPath
XamlGenMarkupFileNames
XamlPackagingRootFolder
XamlPass2FlagFile
XamlRequiresCompilationPass2
XamlRootsLog
XamlSavedStateFileName
XamlSavedStateFilePath
XamlTemporaryAssemblyName
XsdCodeGenCollectionTypes
XsdCodeGenEnableDataBinding
XsdCodeGenGenerateDataTypesOnly
XsdCodeGenGenerateInternalTypes
XsdCodeGenGenerateSerializableTypes
XsdCodeGenImportXmlTypes
XsdCodeGenNamespaceMappings
XsdCodeGenPreCondition
XsdCodeGenReuseTypesFlag
XsdCodeGenReuseTypesMode
XsdCodeGenSerializerMode
XsdCodeGenSupportFx35DataTypes
YieldDuringToolExecution
For some reason, /v:diagnostic
did not dump the environment variables for me.
I tried some stuff, and then the sort-of obvious simple thing worked. Try:
<Exec Command='set' />
You might want to try Debugging MSBuild script with VisualStudio. I haven't tried it, but it seems like it could allow you to step through a script and also list variables.
I know this question is a little old and I'm not sure if there's actually a way to enumerate all defined property names in MSBuild parlance (I'm not aware of one), but I would recommend using the /bl
(/binlog[:filename]
) switch and loading the resulting binary log in the MSBuild Binary and Structured Log Viewer which will not only tell you every property defined and its value, but also show what the values were as each target or task is called throughout the build. This tool has been incredibly useful for learning the inner workings and finding appropriate extension points when customizing MSBuild and can even take you to the line of MSBuild xml that was being executed when you double click on events in the log. There's also a Visual Studio extension mentioned on the site linked that can be used to troubleshoot design time builds (when VS calls MSBuild for things like XAML previews, etc.)
精彩评论