-
Notifications
You must be signed in to change notification settings - Fork 552
Add a solution file for remap-assembly-ref #3248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We've seen the following build error when `remap-assembly-ref` is built from within `xaprepare` by passing its project file to msbuild: (ValidateSolutionConfiguration target) -> /Users/vsts/agent/2.153.2/work/1/s/external/mono/external/cecil/Mono.Cecil.sln.metaproj : error MSB4126: The specified solution configuration "net_4_0_Debug|Any CPU" is invalid. Please specify a valid solution configuration using the Configuration and Platform properties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave those properties blank to use the default solution configuration. [/Users/vsts/agent/2.153.2/work/1/s/external/mono/external/cecil/Mono.Cecil.sln] The reason is that the `$(Configuration)` property, even though set on the msbuild command line, is reset somewhere in one of the Cecil projects to the value shown in the above error message. This happens because properties set on command line when building a `.csproj`, instead of an `.sln`, are **not** made read-only. Thus, using a solution file should fix the problem and this is what this commit is adding.
jonathanpeppers
approved these changes
Jun 18, 2019
Merged
radekdoulik
added a commit
that referenced
this pull request
Jun 21, 2019
This reverts commit 6be64a0. Using the solution instead of csproj broke the cecil build. I didn't traced all the details, but we ended up with compiling `Mono.Cecil.dll` without any references.
radekdoulik
pushed a commit
that referenced
this pull request
Jul 15, 2019
Bump to mono/2019-06 branch and set mono required versions. [cecil] Fix the cecil build by reverting "Add a solution file for remap-assembly-ref (#3248)" Using the solution instead of csproj broke the cecil build. I didn't traced all the details, but we ended up with compiling `Mono.Cecil.dll` without any references. Use 7z when downloading Mono Archives [xaprepare] Drop llvm32 cross compilers Mono has just dropped the llvm32 cross compilers because it is now possible to cross compile to 32-bit using the 64-bit compiler. Remove requirement for 32-bit llvm runtime in preparation stage. [tests] Updated Xamarin.Android.Net tests Update Properties_Invalid test to reflect current implementation This was testing part of our old HttpClientHandler implementation introduced here: mono/mono@f97e03f The current corefx implementation doesn't throw when `UseProxy` is false. The documentation doesn't specify such behavior, so I assume it was specific for our old implementaion. Context: https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclienthandler.proxy?view=netframework-4.8 https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclienthandler.useproxy?view=netframework-4.8 https://github.com/mono/corefx/blob/9354dfd8d3cd4af62592bee9d8fe434e5694788a/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Unix.cs#L242 https://github.com/mono/corefx/blob/9354dfd8d3cd4af62592bee9d8fe434e5694788a/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs#L75 https://github.com/mono/corefx/blob/9354dfd8d3cd4af62592bee9d8fe434e5694788a/src/System.Net.Http/src/System/Net/Http/CurlHandler/CurlHandler.cs#L234 Remove broken HttpClient test Context: #3155 (comment) [linker] Disable linker's UnreachableBodies optimization Disable it for now til we find out a fix. Context: #3202 [jnimarshalmethod-gen] Introduce MonoAndroidLibDirectory property As we have switched to dynamically linker mono recently, we need to have libmonosgen in dyld path. So we set `DYLD_LIBRARY_PATH` for `mono` when running `jnimarshalmethod-gen` [tests] Exclude network tests which hang. Context: mono/mono#14938 Context: dotnet/macios#6228 [xamarin-android-api-compatibility] API changes System.IO.Enumeration.FileSystemName and System.Security.Cryptography.CryptographicOperations classes were removed from System.xml as they were duplicates of mscorlib ones. They were removed as part of NS2.1 work in mono. They were added by mistake and removed later. Because they were already present in 16.1 and 16.2 respectively, mono team added type forwarders to `System.dll` to avoid/lessen API breakage. System.dll now contains: .class extern forwarder System.IO.Enumeration.FileSystemName { .assembly extern mscorlib } .class extern forwarder System.Security.Cryptography.CryptographicOperations { .assembly extern mscorlib } Context: mono/mono@ba719ac #3155 (comment) 3 extension methods extracted from `System.Threading.Tasks.TaskExtensions` to a new `System.Threading.Tasks.TaskAsyncEnumerableExtensions` class. They stay in the same namespace and being extension methods, they should not break anything. public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> ConfigureAwait<T> (this System.Collections.Generic.IAsyncEnumerable<T>, bool); public static System.Runtime.CompilerServices.ConfiguredAsyncDisposable ConfigureAwait (this System.IAsyncDisposable, bool); public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> WithCancellation<T> (this System.Collections.Generic.IAsyncEnumerable<T>, System.Threading.CancellationToken); Context: dotnet/standard@ebeec50#diff-93ef3714cd10edf17d6d8045cf3406b8 #3155 (comment)
radekdoulik
pushed a commit
that referenced
this pull request
Jul 16, 2019
Bump to mono/2019-06 branch and set mono required versions. [cecil] Fix the cecil build by reverting "Add a solution file for remap-assembly-ref (#3248)" Using the solution instead of csproj broke the cecil build. I didn't traced all the details, but we ended up with compiling `Mono.Cecil.dll` without any references. Use 7z when downloading Mono Archives [xaprepare] Drop llvm32 cross compilers Mono has just dropped the llvm32 cross compilers because it is now possible to cross compile to 32-bit using the 64-bit compiler. Remove requirement for 32-bit llvm runtime in preparation stage. [tests] Updated Xamarin.Android.Net tests Update Properties_Invalid test to reflect current implementation This was testing part of our old HttpClientHandler implementation introduced here: mono/mono@f97e03f The current corefx implementation doesn't throw when `UseProxy` is false. The documentation doesn't specify such behavior, so I assume it was specific for our old implementaion. Context: https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclienthandler.proxy?view=netframework-4.8 https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclienthandler.useproxy?view=netframework-4.8 https://github.com/mono/corefx/blob/9354dfd8d3cd4af62592bee9d8fe434e5694788a/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Unix.cs#L242 https://github.com/mono/corefx/blob/9354dfd8d3cd4af62592bee9d8fe434e5694788a/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs#L75 https://github.com/mono/corefx/blob/9354dfd8d3cd4af62592bee9d8fe434e5694788a/src/System.Net.Http/src/System/Net/Http/CurlHandler/CurlHandler.cs#L234 Remove broken HttpClient test Context: #3155 (comment) [linker] Disable linker's UnreachableBodies optimization Disable it for now til we find out a fix. Context: #3202 [jnimarshalmethod-gen] Introduce MonoAndroidLibDirectory property As we have switched to dynamically linker mono recently, we need to have libmonosgen in dyld path. So we set `DYLD_LIBRARY_PATH` for `mono` when running `jnimarshalmethod-gen` [tests] Exclude network tests which hang. Context: mono/mono#14938 Context: dotnet/macios#6228 [xamarin-android-api-compatibility] API changes System.IO.Enumeration.FileSystemName and System.Security.Cryptography.CryptographicOperations classes were removed from System.xml as they were duplicates of mscorlib ones. They were removed as part of NS2.1 work in mono. They were added by mistake and removed later. Because they were already present in 16.1 and 16.2 respectively, mono team added type forwarders to `System.dll` to avoid/lessen API breakage. System.dll now contains: .class extern forwarder System.IO.Enumeration.FileSystemName { .assembly extern mscorlib } .class extern forwarder System.Security.Cryptography.CryptographicOperations { .assembly extern mscorlib } Context: mono/mono@ba719ac #3155 (comment) 3 extension methods extracted from `System.Threading.Tasks.TaskExtensions` to a new `System.Threading.Tasks.TaskAsyncEnumerableExtensions` class. They stay in the same namespace and being extension methods, they should not break anything. public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> ConfigureAwait<T> (this System.Collections.Generic.IAsyncEnumerable<T>, bool); public static System.Runtime.CompilerServices.ConfiguredAsyncDisposable ConfigureAwait (this System.IAsyncDisposable, bool); public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> WithCancellation<T> (this System.Collections.Generic.IAsyncEnumerable<T>, System.Threading.CancellationToken); Context: dotnet/standard@ebeec50#diff-93ef3714cd10edf17d6d8045cf3406b8 #3155 (comment)
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We've seen the following build error when
remap-assembly-ref
is builtfrom within
xaprepare
by passing its project file to msbuild:The reason is that the
$(Configuration)
property, even though set on the msbuildcommand line, is reset somewhere in one of the Cecil projects to the value shown in
the above error message. This happens because properties set on command line when
building a
.csproj
, instead of an.sln
, are not made read-only. Thus, usinga solution file should fix the problem and this is what this commit is adding.