Vlad Brezae [Wed, 21 Jun 2017 11:09:12 +0000 (14:09 +0300)]
[sgen] Remove redundant code
We always init worker distribute gray queue when initialising worker infrastructure.
Vlad Brezae [Wed, 21 Jun 2017 10:55:57 +0000 (13:55 +0300)]
[sgen] Include split count in the parallel job
We were getting the split_count at job run time which makes little sense. Include it in the job, alongside the job index.
Vlad Brezae [Tue, 20 Jun 2017 12:22:39 +0000 (15:22 +0300)]
[sgen] Run the scan pinned object job concurrently with minors
Concurrent mark doesn't normally scan objects in the nursery since they can be moved. At the end of the concurrent mark, we were locking over the entire gc pause in order to make sure that the we can scan the latest pinned object list (aka none of those objects can be moved). Lock only over the pinning phase of the collection, since it is enough.
Vlad Brezae [Fri, 23 Jun 2017 17:06:51 +0000 (20:06 +0300)]
Merge pull request #5098 from BrzVlad/fix-sgen-pagesize
[sgen] Fix sgen pagesize
Marius Ungureanu [Fri, 23 Jun 2017 16:08:23 +0000 (19:08 +0300)]
Merge pull request #5104 from mono/bump-bockbuild
Bump bockbuild
Marius Ungureanu [Fri, 23 Jun 2017 16:05:48 +0000 (19:05 +0300)]
Bump bockbuild
Chris Lapa [Fri, 23 Jun 2017 13:30:23 +0000 (23:30 +1000)]
[aot] fixes temp-path argument only working when using LLVM compiler. (#5099)
Signed-off-by: Chris Lapa <chris@lapa.com.au>
Ankit Jain [Fri, 23 Jun 2017 06:16:31 +0000 (02:16 -0400)]
[packaging/msbuild] Bump to get new changes on xplat-master
Ankit Jain [Fri, 23 Jun 2017 01:35:09 +0000 (21:35 -0400)]
[packaging/msbuild] Update commit hash to point to xplat-master HEAD (#5100)
Vlad Brezae [Thu, 22 Jun 2017 20:15:53 +0000 (23:15 +0300)]
[sgen] Performance improvement for ms_block_size computations
This reduces regressions for switching from MS_BLOCK_SIZE compile time constant
to ms_block_size variable by 85% on the tests where this was showing up. In the
future we should implement a block allocator, which would, amongst other benefits,
enable us to remove the block-size/page-size dependency.
Vlad Brezae [Wed, 21 Jun 2017 20:08:07 +0000 (23:08 +0300)]
[sgen] Fix MS block size calculation.
The block size must be a multiple of the system page size. Page size simply
cannot be determined reliably at compile time, so we must obtain the page size
through a system call on startup and use it as the block size. We still enforce
a minimum block size of 16kb on systems where the page size is smaller than
that.
The old code hardcoded page sizes for certain architectures with large pages.
THe problem is that those architectures don't necessarily have to have large
pages and on systems where this wasn't the case, we'd end up with a block size
much larger than needed.
Rebase of @alexrp's work.
Rodrigo Kumpera [Thu, 22 Jun 2017 21:55:52 +0000 (14:55 -0700)]
Merge pull request #5095 from kumpera/fix_fullaot
[aot] Fix the name of the mono_gc_wbarrier_range_copy icall. FullAOT with direct calls requires it.
Zoltan Varga [Thu, 22 Jun 2017 21:15:27 +0000 (17:15 -0400)]
[arm] Handle large offsets in OP_SEQ_POINT. Fixes #57476. (#5094)
Alex Rønne Petersen [Thu, 22 Jun 2017 19:03:01 +0000 (21:03 +0200)]
Merge pull request #5090 from alexrp/profiler-class-unload-removal
[profiler] Remove class unload events.
Alex Rønne Petersen [Thu, 22 Jun 2017 08:40:58 +0000 (10:40 +0200)]
[profiler] Remove class unload events.
These are never actually emitted by the profiler API because they make no sense
in the context of Mono's metadata layer.
Alex Rønne Petersen [Thu, 22 Jun 2017 18:56:48 +0000 (20:56 +0200)]
Merge pull request #5089 from alexrp/profiler-deadlock-fix
[profiler] Fix a deadlock due to recursive use of the buffer lock.
Rodrigo Kumpera [Thu, 22 Jun 2017 18:48:13 +0000 (11:48 -0700)]
[aot] Fix the name of the mono_gc_wbarrier_range_copy icall. FullAOT with direct calls requires it.
Alex Rønne Petersen [Thu, 22 Jun 2017 18:39:37 +0000 (20:39 +0200)]
Merge pull request #5092 from alexrp/mini-coverage-increment
[mini] Use an atomic add for the code coverage counter when possible.
Eddie Hedges [Thu, 22 Jun 2017 16:48:40 +0000 (11:48 -0500)]
Docs: added missing ) to RelaxngPattern snippet (#5093)
Alex Rønne Petersen [Thu, 22 Jun 2017 15:32:10 +0000 (17:32 +0200)]
[mini] Use an atomic add for the code coverage counter when possible.
Zoltan Varga [Thu, 22 Jun 2017 14:27:07 +0000 (10:27 -0400)]
[runtime] Add a few missing error_init () calls to the mono_custom_attrs_from_... functions. Fixes #57488. (#5076)
Zoltan Varga [Thu, 22 Jun 2017 14:26:46 +0000 (10:26 -0400)]
[sre] Fix the signature of the create_dynamic_method () icall, make it static since the C implementation only takes two parameters, this only caused problems if the icall set the error, since it overwrite the DynamicMethod object instead. Fixes #57301. (#5081)
Alex Rønne Petersen [Thu, 22 Jun 2017 13:55:26 +0000 (15:55 +0200)]
Merge pull request #5091 from alexrp/mini-enter-leave-cleanup
[mini] Remove codegen special cases around MONO_PROFILE_ENTER_LEAVE.
Alex Rønne Petersen [Thu, 22 Jun 2017 10:01:31 +0000 (12:01 +0200)]
[mini] Remove codegen special cases around MONO_PROFILE_ENTER_LEAVE.
Enter/leave instrumentation is now done with icalls at the IR level, so these
special cases are no longer needed.
Alex Rønne Petersen [Thu, 22 Jun 2017 08:30:29 +0000 (10:30 +0200)]
[profiler] Fix a deadlock due to recursive use of the buffer lock.
The lock no longer supports recursion as of
10ba222234b0ff23bfbe29c6f2dfd7673ec2ca7f.
Not that it ever really did, since the old implementation was buggy.
Ludovic Henry [Thu, 22 Jun 2017 00:46:18 +0000 (20:46 -0400)]
[threads] Enable blocking transition with MONO_ENABLE_BLOCKING_TRANSITION env variable (#5087)
Alex Rønne Petersen [Tue, 11 Oct 2016 09:29:39 +0000 (11:29 +0200)]
[utils/mmap] Prefer sysconf () over getpagesize () in mono_pagesize ().
The former is async-signal-safe, while the latter makes no guarantees and also
isn't actually portable.
Aleksey Kliger (λgeek) [Wed, 21 Jun 2017 19:32:29 +0000 (15:32 -0400)]
Merge pull request #5079 from lambdageek/dev-setvalue
[coop handles] Implement various SetValue methods
Rodrigo Kumpera [Wed, 21 Jun 2017 17:34:01 +0000 (10:34 -0700)]
Merge pull request #5082 from kumpera/fix-ro-fs-file-delete
[io-layer] When deleting a file, check for EROFS and verify if the file exists. Fixes #57629.
Rodrigo Kumpera [Wed, 21 Jun 2017 16:56:58 +0000 (09:56 -0700)]
[runtime] Update comment with link to Linux Kernel fix.
Bernhard Urban [Wed, 21 Jun 2017 09:14:15 +0000 (11:14 +0200)]
[interp] disable context-static.exe on CI as it suffers from stack usage issue
Bernhard Urban [Wed, 21 Jun 2017 09:12:58 +0000 (11:12 +0200)]
[interp] fix BARRIER_IF_VOLATILE usage
Alex Rønne Petersen [Tue, 20 Jun 2017 22:43:26 +0000 (00:43 +0200)]
[interp] Handle the `no.` prefix instruction as a no-op.
Alex Rønne Petersen [Tue, 20 Jun 2017 22:33:54 +0000 (00:33 +0200)]
[interp] Add support for the `volatile.` prefix instruction.
Alex Rønne Petersen [Tue, 20 Jun 2017 22:09:41 +0000 (00:09 +0200)]
[interp] Add MINT_MONO_MEMORY_BARRIER.
Alex Rønne Petersen [Tue, 20 Jun 2017 22:06:39 +0000 (00:06 +0200)]
[interp] Fix oplength of MINT_MONO_TLS.
Alex Rønne Petersen [Tue, 20 Jun 2017 22:05:26 +0000 (00:05 +0200)]
[interp] Update comment to clarify meaning of oplength.
Marek Safar [Wed, 21 Jun 2017 10:52:20 +0000 (12:52 +0200)]
[mcs] Add missing vector cloning of definite assignment on-true. Fixes #57505
Alex Rønne Petersen [Wed, 21 Jun 2017 00:06:28 +0000 (02:06 +0200)]
Merge pull request #5072 from alexrp/profiler-stability
[profiler] A bunch of profiler bug/stability fixes.
Marek Safar [Tue, 20 Jun 2017 22:14:05 +0000 (00:14 +0200)]
[mcs] Fixes regression introduced by
a0fc3f4dcf571edc997f53066c09671650e96670 to consider user set values. Fixes #57242
Rodrigo Kumpera [Tue, 20 Jun 2017 20:39:48 +0000 (13:39 -0700)]
[io-layer] When deleting a file, check for EROFS and verify if the file exists. Fixes #57629.
Linux has this particular behavior of returning ENOFS when unlinking from an read only FS.
Even if the file doesn't exists! Darwin does the sane thing and return ENOENT in this case.
To workaround this, if unlink returns EROFS, we stat the file and deal with that.
Marek Safar [Tue, 20 Jun 2017 18:00:27 +0000 (20:00 +0200)]
Bump roslyn to 2.3 beta 2
Aleksey Kliger [Tue, 20 Jun 2017 00:11:15 +0000 (20:11 -0400)]
[runtime] Use coop handles for System.Array.SetValue
Aleksey Kliger [Mon, 19 Jun 2017 22:13:51 +0000 (18:13 -0400)]
[runtime] Use coop handles for System.Array.SetValueImpl
Aleksey Kliger [Mon, 19 Jun 2017 20:14:21 +0000 (16:14 -0400)]
[runtime] Make array_set_value_impl single-exit
Aleksey Kliger [Mon, 19 Jun 2017 19:39:47 +0000 (15:39 -0400)]
[runtime] Don't call icall ves_icall_System_Array_SetValueImpl directly
add a helper function array_set_value_impl and call that from elsewhere in
native code.
Aleksey Kliger [Mon, 19 Jun 2017 19:20:01 +0000 (15:20 -0400)]
[runtime] Add mono_error_set_invalid_cast ()
Aleksey Kliger [Wed, 7 Jun 2017 16:11:32 +0000 (12:11 -0400)]
[runtime] Use coop handles for System.Reflection.MonoField.SetValueInternal
Marek Safar [Tue, 20 Jun 2017 11:48:05 +0000 (13:48 +0200)]
Bump corefx
Aleksey Kliger [Tue, 20 Jun 2017 17:36:21 +0000 (13:36 -0400)]
[runtime] Add mono_nullable_init_from_handle
monojenkins [Tue, 20 Jun 2017 16:30:37 +0000 (17:30 +0100)]
[msvc] Update csproj files (#5075)
Aleksey Kliger [Wed, 14 Jun 2017 21:14:29 +0000 (17:14 -0400)]
[coop handles] Add MONO_HANDLE_SET_FIELD_REF macro
Set a field in an object when you have a MonoClassField*
Aleksey Kliger [Tue, 6 Jun 2017 22:03:30 +0000 (18:03 -0400)]
[coop handles] Add mono_object_handle_pin_unbox
Bernhard Urban [Mon, 19 Jun 2017 14:04:09 +0000 (16:04 +0200)]
[bcl tests] do not attempt to delete non-existing files
This fixes an issue we see on the BCL test suite when run in the context
of Xamarin Android:
```
I/mono-stdout( 2534): Certificate1 [FAIL] : TearDown : System.UnauthorizedAccessException : Access to the path "temp.b64" is denied.
```
It seems like those files aren't generated anymore. Not sure why this
starts to be a problem now.
Alex Rønne Petersen [Tue, 20 Jun 2017 04:38:21 +0000 (06:38 +0200)]
[profiler] Remove an unnecessary check that could hide potential bugs.
Alex Rønne Petersen [Tue, 20 Jun 2017 04:22:28 +0000 (06:22 +0200)]
[acceptance-tests] Update the profiler-stress test runner for the profiler's new argument style.
This allows us to test a lot more combinations than previously.
Alex Rønne Petersen [Tue, 20 Jun 2017 03:45:41 +0000 (05:45 +0200)]
[profiler] Fix 'no' argument parsing.
Alex Rønne Petersen [Tue, 20 Jun 2017 03:02:59 +0000 (05:02 +0200)]
[profiler] Implement a new buffer reader/writer lock algorithm.
See the comment + assertions to get an idea of how it works.
Alex Rønne Petersen [Tue, 20 Jun 2017 01:13:20 +0000 (03:13 +0200)]
[profiler] Require an ack of the previous sampling signal before sending another.
This avoids situations where we could end up filling the signal queue
completely, leading to the undocumented EAGAIN return value from pthread_kill,
which breaks ~everything in the STW/GC code because it thinks an error return
value from pthread_kill means the thread has exited.
The actual reason why this happened is that when a thread is suspended, we mask
all signals except the restart signal for that thread. This means that a
program with a large number of threads or where GC collections could take
longer than usual would end up with tens of thousands of sampling signals
queued up, eventually reaching the limit of the user-level signal queue (see
`ulimit -i` and `RLIMIT_SIGPENDING`).
We only do this on systems where we use real time signals. Non-RT signals do
not have this problem as the kernel will throttle them.
Alex Rønne Petersen [Tue, 20 Jun 2017 00:49:26 +0000 (02:49 +0200)]
[utils/threads] Export small ID functions as part of the API.
These will be used in the log profiler.
Also, make mono_thread_info_register_small_id () only allocate a new small ID
if one isn't already allocated for the current thread. This is necessary so
that we can allocate a small ID for a thread and not have it be overwritten
if/when that thread is later attached probably (which also results in this
function being called).
Alex Rønne Petersen [Tue, 20 Jun 2017 00:34:17 +0000 (02:34 +0200)]
[utils/threads] Print an error and abort if pthread_kill returns an error that isn't ESRCH.
Alex Rønne Petersen [Tue, 20 Jun 2017 00:09:10 +0000 (02:09 +0200)]
[profiler] Remove a FIXME that likely won't be addressed now.
Alex Rønne Petersen [Tue, 20 Jun 2017 00:01:03 +0000 (02:01 +0200)]
[profiler] Ensure that buffer size is adjusted to whatever an event actually needs.
Very large events could previously result in potential overflows because
buffers always had the same size (BUFFER_SIZE, 64k).
Alex Rønne Petersen [Mon, 19 Jun 2017 23:51:30 +0000 (01:51 +0200)]
[profiler] Remove the buffer size hack in ensure_logbuf_unsafe ().
This is blatantly hiding potential bugs. This kind of code is not okay.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:50:18 +0000 (01:50 +0200)]
[profiler] Attach threads automatically in all callbacks.
This hardens the profiler against cases where an unattached thread causes some
event callback to be invoked. This is particularly relevant when embedding.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:34:14 +0000 (01:34 +0200)]
[profiler] Flush the dumper thread every second.
If a program is idle, we likely won't get enough samples to prompt the dumper
thread to send its log buffer to the writer thread. This can make it seem like
the profiler isn't working when it actually is. So, just send the dumper
thread's log buffer every second to make sure data is delivered in a timely
fashion.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:33:46 +0000 (01:33 +0200)]
[profiler] Take the reader lock when modifying the thread-local method list.
It can be modified by other threads during sync points.
Ludovic Henry [Tue, 20 Jun 2017 00:35:54 +0000 (20:35 -0400)]
[threads] Store MonoInternalThread in MonoThreadInfo for use when detaching (#5058)
* [threads] Make mono_thread_attach_full static
* [threads] Remove prefix on MonoThreadInfoCallbacks callbacks
* [threads] Rename mono_threads*_init functions to mono_thread_info*_init
* [threads] Remove dead method mono_runtime_is_critical_method
* [threads] Move MonoThreadInfoCallbacks to metadata/threads
* [threads] Store MonoInternalThread in MonoThreadInfo for use when detaching
When the native thread would exit, the TLS keys are destroyed. There is a TLS destructor for MonoThreadInfo, but not for MonoInternalThread. If MonoInternalThread is destroyed before MonoThreadInfo, then MonoThreadInfoCallbacks.thread_detach wouldn't successfully detach the current MonoInternalThread as mono_thread_internal_current would return NULL. This would lead to MonoInternalThread still laying around, while their corresponding MonoThreadInfo has already been destroyed. This fixes this problem, since we now rely on MonoThreadInfo to store the MonoInternalThread for detach.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:29:15 +0000 (01:29 +0200)]
Merge pull request #5070 from alexrp/profiler-version-bump
[profiler] Bump log profiler version to 2.0 due to breaking argument changes.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:24:51 +0000 (01:24 +0200)]
[profiler] Bump log profiler version to 2.0 due to breaking argument changes.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:04:18 +0000 (01:04 +0200)]
Merge pull request #5062 from alexrp/profiler-library
[profiler] Introduce the Mono.Profiler.Log library. (take 2)
Alex Rønne Petersen [Mon, 12 Jun 2017 20:53:56 +0000 (22:53 +0200)]
[profiler] Introduce the Mono.Profiler.Log library. API still unstable.
Alex Rønne Petersen [Mon, 19 Jun 2017 22:46:50 +0000 (00:46 +0200)]
Merge pull request #5063 from alexrp/profiler-format-changes
[profiler] A few small format changes
Alex Rønne Petersen [Sun, 18 Jun 2017 03:53:24 +0000 (05:53 +0200)]
[profiler] Bump format version to 14.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:52:40 +0000 (05:52 +0200)]
[profiler] Update format description comment.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:51:43 +0000 (05:51 +0200)]
[profiler] Encode the address in TYPE_SAMPLE_UBIN as a pointer.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:47:43 +0000 (05:47 +0200)]
[profiler] Add an exception object field to TYPE_CLAUSE.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:45:58 +0000 (05:45 +0200)]
[profiler] Add an image pointer field to assembly load events.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:41:28 +0000 (05:41 +0200)]
[profiler] Simplify the encoding of monitor events.
The way the event was encoded was highly irregular with respect to the rest of
the format.
Zoltan Varga [Mon, 19 Jun 2017 20:52:48 +0000 (16:52 -0400)]
[jit] Fix a warning.
Aleksey Kliger (λgeek) [Mon, 19 Jun 2017 19:41:14 +0000 (15:41 -0400)]
Merge pull request #5059 from lambdageek/tbt
[tests] Rework TypeBuilderTest SetUp/TearDown
Zoltan Varga [Mon, 19 Jun 2017 18:33:44 +0000 (14:33 -0400)]
[arm64] Remove an assert which is hit when mono_arch_get_call_target () is called with a 'b' instead of a 'bl'.
Rodrigo Kumpera [Mon, 19 Jun 2017 18:00:03 +0000 (14:00 -0400)]
Merge pull request #5027 from kumpera/damn-you-strerror
[eglib] Replace strerror with strerror_r as the former is not thread safe.
Zoltan Varga [Mon, 19 Jun 2017 17:49:31 +0000 (13:49 -0400)]
[jit] Treat the mono_threads_attach_coop () icall specially, since it can be called from native-to-managed wrappers on unattached threads, so calling it shouldn't go through the trampoline infrastructure. (#5056)
Aleksey Kliger [Mon, 19 Jun 2017 15:02:10 +0000 (11:02 -0400)]
[tests] Don't run SRE saved assembly in current process
Windows doesn't like deleting the file, and the original bug was a problem in
SRE, not in the AssemblyBuilder.Save ()
Zoltan Varga [Mon, 19 Jun 2017 15:12:33 +0000 (11:12 -0400)]
[interp] Implement runtime invokes by executing the runtime-invoke wrappers using the interpreter. This saves some code and allows better interop with JIT exceptions. (#5057)
Alexander Köplinger [Mon, 19 Jun 2017 13:15:08 +0000 (15:15 +0200)]
[MacSDK] Bump msbuild
Alexander Köplinger [Mon, 19 Jun 2017 12:58:50 +0000 (14:58 +0200)]
[packaging] Add a few more missing files to Windows MSI
Also add a safeguard so we don't accidentally leave files with
OSX paths in the package.
Alexander Köplinger [Mon, 19 Jun 2017 11:58:15 +0000 (13:58 +0200)]
Bump cecil and api-snapshot
Alexander Köplinger [Mon, 19 Jun 2017 10:54:32 +0000 (12:54 +0200)]
[btls] Fix a small memleak in btls-x509-lookup.c (#5065)
Noticed this while looking at the Clang Analysis Report[1] as the
only memory leak in the report and thought why not fix it :)
[1] https://jenkins.mono-project.com/job/test-mono-mainline-staticanalysis/Clang_Analysis_Report/
Alexander Köplinger [Sun, 18 Jun 2017 23:39:07 +0000 (01:39 +0200)]
[packaging] Add a few missing msbuild files to Windows MSI
Alex Rønne Petersen [Sun, 18 Jun 2017 03:40:05 +0000 (05:40 +0200)]
[profiler] Add an exception clause callback that receives the exception object.
Zoltan Varga [Sat, 17 Jun 2017 05:32:34 +0000 (01:32 -0400)]
[sdb] Fix invokes to string ctors. Fixes #57197.
Ludovic Henry [Sat, 17 Jun 2017 01:01:51 +0000 (21:01 -0400)]
[w32handle] Unify WaitHandle.Wait{One,Any,All} icalls (#5051)
Aleksey Kliger [Fri, 16 Jun 2017 23:51:27 +0000 (19:51 -0400)]
[tests] Rework TypeBuilderTest SetUp/TearDown
- Create a unique temporary directory for each test in TypeBuilderTest and delete
it on TearDown.
- Change tests to use tempDir instead of Path.GetTempPath ()
- Change IsSerializable () test to how it was 11 years ago and have it write to a
file with a simple name (but now in a directory where noone else is writing)
- Change FieldsWithSameName (), FieldsWithSameNameAndType () and
MethodsWithSameNameAndSig () to use the default temp assembly (now in a
unique tempDir) instead of using the CreateTempAssembly ()
- Remove CreateTempAssembly function. It is dead code.
Ludovic Henry [Fri, 16 Jun 2017 23:14:13 +0000 (19:14 -0400)]
[threads] Rework MonoThreadInfoCallbacks.thread_{register,detach,unregister} callbacks (#5055)
* [threads] Use MonoThreadInfo.{stack_start_limit,stack_end} in more places
* [threads] Remove dead code
* [threads] Rename MonoThreadInfoCallbacks.thread_{register,detach,unregister} to MonoThreadInfoCallbacks.thread_{attach,detach,detach_with_lock} respectively
Zoltan Varga [Fri, 16 Jun 2017 21:45:41 +0000 (17:45 -0400)]
[runtime] Add a mono_marshal_get_runtime_invoke_full () function with an extra need_direct_wrapper argument to allow generation of runtime-invoke wrappers which directly call a method without using the 'addr' argument. (#5053)
Zoltan Varga [Fri, 16 Jun 2017 20:01:38 +0000 (16:01 -0400)]
[interp] Implement CEE_RETHROW properly by allocating a separate exception variable for each clause, and not overwriting stack traces on a rethrow. (#5040)
Rodrigo Kumpera [Fri, 16 Jun 2017 18:42:20 +0000 (14:42 -0400)]
Merge pull request #5014 from vkargov/vk-kasha
[jit] Always cache the latest image set in case of a cache miss.
monojenkins [Fri, 16 Jun 2017 16:32:26 +0000 (17:32 +0100)]
[msvc] Update csproj files (#5052)