Skip to content

Commit 9507abe

Browse files
committed
License correction, TFM update, and documentation improvements
- Change license from MIT to Ms-RL to comply with original Microsoft Reference Source terms - Update target framework from netstandard2.0 to net8.0 (MSMQ is Windows-only) - Replace "counterfeit" terminology with "unofficial port" throughout documentation - Update System.Security.Permissions package to 8.0.0 - Add License Notice section in README explaining the license history - Standardize release notes format across all versions
1 parent dd7dd49 commit 9507abe

3 files changed

Lines changed: 90 additions & 34 deletions

File tree

Experimental.System.Messaging/Experimental.System.Messaging.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<RootNamespace>Experimental.System</RootNamespace>
66
<PackageId>Experimental.System.Messaging</PackageId>
7-
<Version>1.1.0</Version>
7+
<Version>1.2.0</Version>
88
<Authors>Original author: Microsoft Corporation, Code ported by: Jung Hyun, Nam</Authors>
99
<Company>Microsoft Corporation</Company>
1010
<Product>Experimental.System.Messaging (for .NET Core)</Product>
1111
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
1212
<PackageTags>MSMQ,Fork,Experimental</PackageTags>
13-
<Description>This package is a counterfeit of the .NET Framework version System.Messaging assembly for .NET Core applications running on Windows Client and Windows Server. It is provided for development convenience. Do not use this package if Microsoft officially releases this package again. Also, once it is released, you should migrate the code to the new package.
13+
<Description>This package is an unofficial port of the .NET Framework System.Messaging assembly for .NET Core/.NET 8+ applications running on Windows. It is provided for development convenience. If Microsoft officially releases an MSMQ client package, you should migrate to the official package.
1414

15-
The source code for this package is excerpted from the .NET Framework reference source code.</Description>
15+
The source code for this package is derived from the .NET Framework reference source code.</Description>
1616
<PackageLicenseUrl></PackageLicenseUrl>
1717
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
1818
<PackageReleaseNotes>1.1.0 - Fix Trustee class namespace</PackageReleaseNotes>
@@ -24,13 +24,13 @@ The source code for this package is excerpted from the .NET Framework reference
2424

2525
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
2626
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
27-
<DocumentationFile>bin\Release\netstandard2.0\Experimental.System.Messaging.xml</DocumentationFile>
27+
<DocumentationFile>bin\Release\net8.0\Experimental.System.Messaging.xml</DocumentationFile>
2828
<WarningLevel>2</WarningLevel>
2929
</PropertyGroup>
3030

3131
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
3232
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
33-
<DocumentationFile>bin\Debug\netstandard2.0\Experimental.System.Messaging.xml</DocumentationFile>
33+
<DocumentationFile>bin\Debug\net8.0\Experimental.System.Messaging.xml</DocumentationFile>
3434
<WarningLevel>2</WarningLevel>
3535
</PropertyGroup>
3636

@@ -42,7 +42,7 @@ The source code for this package is excerpted from the .NET Framework reference
4242
</ItemGroup>
4343

4444
<ItemGroup>
45-
<PackageReference Include="System.Security.Permissions" Version="6.0.0" />
45+
<PackageReference Include="System.Security.Permissions" Version="8.0.0" />
4646
</ItemGroup>
4747

4848
</Project>

LICENSE.txt

Lines changed: 66 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,66 @@
1-
The MIT License (MIT)
2-
3-
Copyright (c) Microsoft Corporation
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
1+
Microsoft Reciprocal License (Ms-RL)
2+
3+
This license governs use of the accompanying software. If you use the software,
4+
you accept this license. If you do not accept the license, do not use the
5+
software.
6+
7+
1. Definitions
8+
9+
The terms "reproduce," "reproduction," "derivative works," and "distribution"
10+
have the same meaning here as under U.S. copyright law.
11+
12+
A "contribution" is the original software, or any additions or changes to the
13+
software.
14+
15+
A "contributor" is any person that distributes its contribution under this
16+
license.
17+
18+
"Licensed patents" are a contributor's patent claims that read directly on its
19+
contribution.
20+
21+
2. Grant of Rights
22+
23+
(A) Copyright Grant- Subject to the terms of this license, including the
24+
license conditions and limitations in section 3, each contributor grants you a
25+
non-exclusive, worldwide, royalty-free copyright license to reproduce its
26+
contribution, prepare derivative works of its contribution, and distribute its
27+
contribution or any derivative works that you create.
28+
29+
(B) Patent Grant- Subject to the terms of this license, including the license
30+
conditions and limitations in section 3, each contributor grants you a
31+
non-exclusive, worldwide, royalty-free license under its licensed patents to
32+
make, have made, use, sell, offer for sale, import, and/or otherwise dispose of
33+
its contribution in the software or derivative works of the contribution in the
34+
software.
35+
36+
3. Conditions and Limitations
37+
38+
(A) Reciprocal Grants- For any file you distribute that contains code from the
39+
software (in source code or binary format), you must provide recipients the
40+
source code to that file along with a copy of this license, which license will
41+
govern that file. You may license other files that are entirely your own work
42+
and do not contain code from the software under any terms you choose.
43+
44+
(B) No Trademark License- This license does not grant you rights to use any
45+
contributors' name, logo, or trademarks.
46+
47+
(C) If you bring a patent claim against any contributor over patents that you
48+
claim are infringed by the software, your patent license from such contributor
49+
to the software ends automatically.
50+
51+
(D) If you distribute any portion of the software, you must retain all
52+
copyright, patent, trademark, and attribution notices that are present in the
53+
software.
54+
55+
(E) If you distribute any portion of the software in source code form, you may
56+
do so only under this license by including a complete copy of this license with
57+
your distribution. If you distribute any portion of the software in compiled or
58+
object code form, you may only do so under a license that complies with this
59+
license.
60+
61+
(F) The software is licensed "as-is." You bear the risk of using it. The
62+
contributors give no express warranties, guarantees or conditions. You may have
63+
additional consumer rights under your local laws which this license cannot
64+
change. To the extent permitted under your local laws, the contributors exclude
65+
the implied warranties of merchantability, fitness for a particular purpose and
66+
non-infringement.

README.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,17 @@ Experimental port of System.Messaging (for .NET Core)
66

77
## Introduction
88

9-
This package is a counterfeit of the .NET Framework version System.Messaging assembly for .NET Core applications running on Windows Client and Windows Server. It is provided for development convenience. Do not use this package if Microsoft officially releases this package again. Also, once it is released, you should migrate the code to the new package.
9+
This package is an unofficial port of the .NET Framework System.Messaging assembly for .NET Core/.NET 8+ applications running on Windows. It is provided for development convenience. If Microsoft officially releases an MSMQ client package, you should migrate to the official package.
1010

11-
The source code for this package is excerpted from the .NET Framework reference source code.
11+
The source code for this package is derived from the .NET Framework reference source code.
12+
13+
## License Notice
14+
15+
This project is licensed under the **Microsoft Reciprocal License (Ms-RL)**.
16+
17+
The original source code was obtained from Microsoft Reference Source (referencesource.microsoft.com) when it was available under the Ms-RL license. Due to insufficient understanding at the time, this package was mistakenly distributed under the MIT License from its initial release until version 1.1.0. We sincerely apologize for this error and have corrected the license to Ms-RL starting from version 1.2.0.
18+
19+
As a derivative work based on Ms-RL licensed code, this package must also be distributed under Ms-RL in accordance with the license terms.
1220

1321
## Disclaimer
1422

@@ -76,13 +84,16 @@ var queue = new MessageQueue(@"FormatName:Direct=TCP:192.168.1.100\MyPublicQueue
7684

7785
### v1.2.0 (2025-11-30)
7886

79-
- Added support for setting access control on queue. Ported `AccessControlEntry`, `AccessControlEntryType`, `AccessControlList`, `MessageQueueAccessControlEntry`, `MessageQueuePermission`, `MessageQueuePermissionAccess`, `MessageQueuePermissionEntry`, and `MessageQueuePermissionEntryCollection` classes to provide access control permissions support. (PR #5, contributed by @j0hnth0m)
80-
- Fixed Unicode string null termination in `StringToBytes` method. This bug affected `MessageQueue.Label`, `MessageQueue.MulticastAddress`, `Message.Label`, `Message.AuthenticationProviderName`, and queue format name properties, causing them not to persist correctly to MSMQ.
87+
- **Breaking Change**: Changed target framework from `netstandard2.0` to `net8.0`. Since MSMQ is a Windows-only technology, the original cross-platform targeting via .NET Standard was unnecessary. Mono has transitioned to WineHQ, .NET Framework already has native System.Messaging support, and other platforms (Silverlight, UWP, Unity) are not applicable targets for this library.
88+
- **License Correction**: Changed license from MIT to Ms-RL (Microsoft Reciprocal License) to properly comply with the original Microsoft Reference Source license terms.
89+
- **Documentation**: Revised terminology throughout the documentation. Replaced "counterfeit" with "unofficial port" to better reflect the legitimate nature of this community-maintained derivative work.
90+
- **New Feature**: Added support for setting access control on queue. Ported `AccessControlEntry`, `AccessControlEntryType`, `AccessControlList`, `MessageQueueAccessControlEntry`, `MessageQueuePermission`, `MessageQueuePermissionAccess`, `MessageQueuePermissionEntry`, and `MessageQueuePermissionEntryCollection` classes. (PR #5, contributed by @j0hnth0m)
91+
- **Bug Fix**: Fixed Unicode string null termination in `StringToBytes` method. This bug affected `MessageQueue.Label`, `MessageQueue.MulticastAddress`, `Message.Label`, `Message.AuthenticationProviderName`, and queue format name properties.
8192

8293
### v1.1.0 (2019-11-06)
8394

84-
Trustee class namespace was moved from System.Messaging to Experimental.System.Messaging. It could break your existing build process.
95+
- **Breaking Change**: Moved `Trustee` class namespace from `System.Messaging` to `Experimental.System.Messaging`.
8596

8697
### v1.0.0 (2018-01-06)
8798

88-
This version of the System.Messaging package excludes all advanced features such as code access security, execute permissions, and Active Directory integration. I released the package keeping in mind the minimal use of Message Queuing communication facilities. Please confirm whether it is suitable for actual use through unit test and integration test.
99+
- **Initial Release**: Ported System.Messaging for .NET Core with minimal feature set. Excludes advanced features such as code access security, execute permissions, and Active Directory integration.

0 commit comments

Comments
 (0)