Age | Commit message (Collapse) | Author |
|
* Fix native sourcelink support
* Correctly case Sdk.Targets
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
|
|
(#66677)
* Use managed sourcelink infrastructure to allow for win native sourcelink
|
|
* Use SDK logic for IsTrimmable
* Address some analyzer warnings
* Disable analyzer when baseline suppressions exist
* Don't mark unannotated test project as trimmable
* Add nativeaot annotations
* Add suppression in windows-only code
* Import illink.targets only when trimming mobile tests
* Don't run analyzer on unannotated windows OOBs
* PR feedback
Use pragma instead of UnconditionalSuppressMessage
|
|
Split the build of shared framework and out-of-band projects so that
it's possible to just build the shard framework projects, which was
requested by the CLR teams. In the next infrastructure rollout, the
current "libs.ref+libs.src" subsets should be removed. Generate the
targeting pack with an incomplete (without shims) frameworklist as part
of the "libs.sfx" subset.
Build the shim projects after the shared framework and oob projects and
re-generate the targeting pack's frameworklist to include the shims.
Refactor the shims so that they aren't grouped anymore by generated &
manual. Instead group them by "ref" and "src" same as other libraries
in the tree which allows to reference the source project shims and read
from the ReferenceAssembly metadata.
Use ProjectReferences in traversal projects and shim projects instead
of named references that point to binplace directories (see graph below)
This allows to build parts of the product dynamically, i.e. the shim
projects, apicompat.proj, sfx.proj and oob.proj.
|
|
Avoid the additional AssemblyInfo file which is placed under
"$(IntermediateOutputPath)_AssemblyInfo.cs/vb" and remove the
"_WriteNonStringAssemblyInfoAttributes" target that isn't necessary
anymore now that msbuild supports specifying assembly attributes with
non string types.
https://github.com/dotnet/msbuild/commit/c4cda20d0720ba3d467df7ef487b63f79eb848a0
|
|
* Don't use Targets* helper properties in libs projs
This change makes it possible to migrate 200+ (ref+src) projects to use
TargetFramework instead of TargetFrameworks which avoids the additional
outer build evaluation and invocation which ultimately makes the overall
build faster.
Targets* properties (i.e. TargetsWindows, TargetsAnyOS, TargetsUnix,
etc.) rely on the TargetFramework property which usually are set
inside a project. The TargetFramework property is only
available before a project specifies it if it's explicitly set in a props
file or if the project is cross-targeting and the outer-build dispatches
into the inner-build. During the dispatch, the TargetFramework property
is passed in as a global property.
Until now that behavior wasn't a problem because every libraries project
cross-targeted (by setting the TargetFrameworks property) even though
many only include a single TargetFramework (i.e. NetCoreAppCurrent).
To allow projects to use the TargetFramework property instead of
TargetFrameworks, the Targets* helper properties can't be calculated
anymore early in a props file as the TargetFramework property isn't set
at that time.
In general, the guidance by the SDK/msbuild team is to not read from the
TargetFramework property before the project sets it
(in a property group). That effectively means that the TargetFramework
property shouldn't be used in props files at all.
Therefore these helper properties can't be used anymore for property
conditions and I'm replacing their usage with TargetPlatformIdentifier
comparisons for both properties and items.
In nearly all cases, the Targets* helper properties can be replaced with
TargetPlatformIdentifier checks on items and in the few cases where
TargetsUnix or TargetsLinux marks multiple tfms as compatible, the exact
tfms must be used instead for the TargetPlatformIdentifier comparison.
Whenever a project needs to condition properties on the platform, I'm
first setting the TargetPlatformIdentifier the same way the SDK sets it
so that the SDK later doesn't need to set it again to avoid the
additional expensive msbuild function call.
* Use TargetFramework singular to avoid outer builds
Use TargetFramework instead of TargetFrameworks property whenever a
projects only targets a single target framework. This avoid unnecessary
outer builds and evaluations and makes the build faster.
|
|
assembly (#53626)
|
|
|
|
(#49261)
* Don't call into unsupported APIs on build targets which don't support quic
The code could be extracted to HttpConnectionPool.quick.cs but not sure
it's worth the split as that would move the majority of the code.
Fixes #49201
Fixes #49187
* if-def less version
* Quic IsSupported working and not throwing for AnyOS.
* Fix for running the newly added UnitTest.
* Add missing unsupported targets
* Reverted Quic changes.
* Unsupported to Supported
* Guarded unsupported calls with OperationgSystem.Is...()
* Addressed comments.
* Analyzer fixed, macOS fixed.
* Trimming test.
* Removed test.
* Guard more unsupported platform calls
* Some more analyzer attributes.
* Fix for Android, which returns true for IsLinux().
* Skip failing trimming test on wasm
* Removed additional UnsupportedOS attributes, referenced issue.
Co-authored-by: Marie Píchová <mapichov@microsoft.com>
|
|
* Update ref assemblies libraries unsupported on mobile
* Add tvOS to known platforms list
|
|
* Add targets as supported platforms
* Update analyzer version
* Update comment, remove '' != 'false' condition
|
|
|
|
* Process.Start
* Remove redundant annotations
* Remove iOS since it's in the default list of supported platforms
* Process.Kill
* Make Process.Kill throw PNSE on iOS/tvOS
* Annotate windows-related implementation of Kill method
|
|
|
|
* Annotate framework assemblies as trimmable
This will opt them into trimming with the behavior described at https://github.com/mono/linker/blob/main/docs/design/trimmed-assemblies.md#assemblymetadataistrimmable-true.
* Add a condition to let projects opt out
A project just needs to set <SetIsTrimmable>false</SetIsTrimmable>, and
it won't get the trimmable metadata.
I also got rid of the SkipFrameworkAssemblyMetadata check since I don't
think the IsTrimmable metadata should be tied to whether we are building
a framework assembly, and this property was unused as far as I could tell.
|
|
browser build (#47789)
* Remove logic for removing TFM target supported attributes for browser build, use latest analyzer
|
|
* General cleanup and mono import Arcade in root
* More cleanup and coreclr import Arcade root
* Import Arcade root from libraries
* Set informationversion for corelib
* BuildArchitecture cleanup
* Fix property name
* Fix default target invocation of runtime.proj
* specify tfm correctly
* Remove unnecessary TestStrongNameKeyId
* Revert TestStrongNameKeyId removal
* Fix entrypoint target by using M.B.NoTargets
* Fix reference assembly paths
* PR feedback
* Set Platform correctly
* PR feedback and more cleanup
* Move BaselineMicrosoftNetCoreAppPackageVersion
* Fix reference to CoreLib
* Fix OS calculation
* Fix targets importing
* Remove *TargetOS
* Add RuntimeConfiguration doc
* Change conditions in root msbuild files
* installer test fixes
* Cleanup
* More cleanup because of well defined entrypoint
* Don't import D.B.* from installer tests at all
* Rename fix
* Include explicit reference to mscorlib in ilproj
* Update eng/restore/docs.targets
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Revert some installer test changes
* Installer test fix again
* Disable EOL tfm check for installer tests
* Set platform later for installer
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
|
|
* Make EventLog work without .NETFramework
* Use a project file instead of targets to create message DLL
* Add EventLogMessagesTests
* Address feedback
* Exclude EventLogMessage tests on net48
* Apply code review feedback
Also fix one test which would fail on machine without .NETFramework.
* Fix HelpLink test
|
|
warnings (#45504)
|
|
* Handle browser warnings
* Apply feedback, revert updates handled with different PRs
* Add misssing diagnotic id
* Address multitargeted warnings
* Apply feedback
* Small type/comment updates
* Apply more feedback
* Use project settings instead adding Directory.Build.props
* Annotate APIs injecting unsupported type through DI
* Fix window support related warnings found with generic type parameter
* Fix another browser warning found with generic type parameter bug fix
* All public APIs of ConsoleLoggerExtensions are unsupported, so marking entire type as unsupported on browser
* Try handle mono warnings
* Revert mono related changes, it was mistake
* Try handle browser warninga in mono
* Apply feedback and fix new warnings caused from corelib changes
* Review update
* Apply feedback
* Move platform specific section from HttpTelemetry
* Revering unwanted changes
* Remove redundant attributes
* Exclude cross platform build with browser target
* small updates
* Annotate entire type DiagnosticCounter unsupported
* Apply feedback, improve suppression comments
* Remove Unsupported browser from TypeDescriptor.CreateInstance, TypeDescriptionProvider.CreateInstance and related updates
|
|
* Use targetPlatformMoniker for net5.0 and newer tfms
* disabling analyzer, update version to 0.0, and use new format.
* update the targetFramework.sdk
* removing supportedOS assembly level attribute
* fix linker errors and addressing feedback
* making _TargetFrameworkWithoutPlatform as private
|
|
* Fix CA1416 warnings in runtime repo
|
|
* Mark System.Security.Cryptography.OpenSsl as unsupported on browser
* Mark other System.Security.Cryptography APIs as unsupported on browser
* Mark System.Data.Odbc.* as unsupported on browser
* Mark System.DirectoryServices.Protocols APIs as unsupported on browser
* Mark System.Drawing.Common APIs as unsupported on browser
* Mark System.IO.Ports as unsupported on browser
|
|
#40101 (#40377)
|
|
(#40375)
|
|
* rename attributes:
* MinimumOSPlatformAttribute -> SupportedOSPlatformAttribute
* RemovedInOSPlatformAttribute -> UnsupportedOSPlatformAttribute
* update src and ref files
* update .targets file
* update comment ;)
|
|
* move all OSPlatformAttributes to a single file so they can be easily referenced in < .NET 5 libraries
* Adds System.Runtime.Versioning*Platform* annotation attributes to < .NET 5 builds
* introduce MinimiumSupportedWindowsPlatform
* introduce IsWindowsSpecific setting that adds MinimumOSPlatform attribute for Windows Specific libraries
* mark all Windows-specific libraries as such
* annotate Windows-specific System.Console methods and properites
* annotate Windows-specific DpapiProtectedConfigurationProvider type
* annotate throwing Windows-specific APIs from System.Diagnostics.Process namespace
* annotate throwing Windows-specific APIs from System.IO.MemoryMappedFiles namespace
* annotate Windows-specific APIs from System.IO.Pipes namespace
* the new attributes should support enums
* annotate Windows-specific APIs from HttpListenerTimeoutManager class
* annotate Windows-specific APIs from System.Net.Sockets namespace
* annotate Windows-specific APIs from System.Runtime.InteropServices namespace
* annotate Windows-specific APIs from System.Security.Cryptography.Csp namespace
* annotate Windows-specific APIs from System.Security.Cryptography.X509Certificates namespace
* annotate Windows-specific APIs from System.Threading namespace
* address code review feedback: dont introduce new constants, reuse existing SYSTEM_PRIVATE_CORELIB
* code review: import the namespace, simplify the attribute name
* add missing Socket.DuplicateAndClose and Socket(SocketInformation)
* fix the test name (it does not throw)
* add missing DriveInfo.set_VolumeLabel
* add System.IO.FileSystem File Encrypt and Descrypt methods
* simplify the < .NET 5 check
* enable nullable in explicit way as it's not enabled in all the projects where this file is included
* include platform attributes in projects that ask for it in explicit way
* set IncludePlatformAttributes to true for projects that include files from other projects
* use suggestions from Viktor and Santi
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
|
|
|
|
* Enable dotnet test
* Update docs
* Use vstest in F5 scenarios
* Make dotnet test without framework switch work
* Code cleanup
* Only run code coverage conditionally
* Fix F5 condition for netcoreapp
* Downgrade sdk to check for helix submission failures
* Fix wrong conditions
* Add blame data collector
|
|
|
|
- Use current version numbers everywhere
- Use product version (e.g. 5.0.0) for all user facing versions
- Use file version (e.g. 5.0.20.21010) only when the exact version information is required
- Reduce number of layers of version macro definitions
|
|
Contributes to #33680
|
|
* fixing sourcelink
* enable sourcelink on official build
* addressing feedback
* removing extra space
* reverting eng common change
* adding comment
* moving comment to correct place
* not embedding files for test assemblies
|
|
(dotnet/corefx#42491)
Commit migrated from https://github.com/dotnet/corefx/commit/ab01852685e659a685af2ace33af5b3cefdf8430
|
|
* Prepare corefx for repo consolidation into runtime
Commit migrated from https://github.com/dotnet/corefx/commit/e160dd972d958fbe9594dc1001da4d1b94bba949
|
|
* Remove license header from non-shipping files
* Remove obsolete Project attributes
* Remove xml header and remove DefaultTargets
Commit migrated from https://github.com/dotnet/corefx/commit/c390ce7df50252e11f5d322276e9d19e046d1332
|
|
(dotnet/corefx#35436)
* Use the .NET Core product version for informational version description
The 4.X.Y.Z versions that we use for file and assembly versions are confusing. We can make the situation better by including the official .NET Core version in the informational assembly version description at least.
* Move ProductVersion to Versions.props
* Move Packaging.props to later
Commit migrated from https://github.com/dotnet/corefx/commit/0577135efa86fec33f1cc9bb10808d31e302a94f
|
|
Commit migrated from https://github.com/dotnet/corefx/commit/6999d5e9809c22be73b71ab1f16d83721cc245e4
|
|
* Remove buildtools imports from Directory.Build.*
Remove buildtools imports and implement remaining functionality in CoreFx.
I was able to do most of what BuildTools was doing with 3 exceptions, which will be split into separate issues.
1. Test shared framework deps file: GenerateDepsJson. We need to port this task to arcade or change how we test to not need it.
2. codeOptimization.targets -> should be moved to arcade, work is pending.
3. optionalTooling.targets -> move to a CSProj that is restored by the official build workflow.
* Address feedack, fix unix and UAP build issues
* Fix UWP, Tizen, and AllConfigurations build
* Remove buildtools dependency from package testing
* Remove a few more buildtools dependencies
* Eliminate RunningOnUnix property
* Remove NuGetTargetMoniker from shims.proj
* Remove ResourcesFolderPath
* Fix Microsoft.XmlSerializer.Generator.Tests
* Specify NuGetTargetMoniker for shims
* Remove a couple remaining ToolsDir uses
Commit migrated from https://github.com/dotnet/corefx/commit/49d249fa023e8575dba7e35febb4446e4fa13f98
|
|
(dotnet/corefx#34087)
* Renamed Microsoft.VisualBasic to Microsoft.VisualBasic.Core
Part of porting Microsoft.VisualBasic to core. A facade for
Microsoft.VisualBasic is now generated in place of the original dll so
existing applications will be able to continue with the same set of
references.
* Addressed feedback
* Address PR feedback.
* Continued work on renaming
* Remove package for Microsoft.VisualBasic.Core and make API additions framework specific
(cherry picked from commit dotnet/corefx@0ef22b502e77b06f68e97e0614144da8c05b08ef)
* Fix test Configurations
* Fix VB test build for UAP
* PR feedback.
Commit migrated from https://github.com/dotnet/corefx/commit/90dc9459b8eaf0c8ac93440e58c7535c67dacc22
|
|
Commit migrated from https://github.com/dotnet/corefx/commit/9568db803c4ac9a8771575af1f46e59153978b42
|
|
Fix VersionSuffix for runtime package dependency versions
Fix version.txt generation for packaging
Add source link packages to enable source link
Add sourcelink package feed for tools restore
Bump file version to 4.7
Since we are changing file version scheme with the switch to arcade
we need to bump the minor version to avoid file versions becoming less
then then were in previous releases.
Commit migrated from https://github.com/dotnet/corefx/commit/a894228ef3d736d8dac7c004c0fe92acf2fdd285
|