payload: {"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/project-system/issues/4938","repository_url":"https://api.github.com/repos/dotnet/project-system","labels_url":"https://api.github.com/repos/dotnet/project-system/issues/4938/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/project-system/issues/4938/comments","events_url":"https://api.github.com/repos/dotnet/project-system/issues/4938/events","html_url":"https://github.com/dotnet/project-system/issues/4938","id":458630893,"node_id":"MDU6SXNzdWU0NTg2MzA4OTM=","number":4938,"title":"Third-party Windows Forms controls that use LicenseManager crash the designer with E_NOTIMPL","user":{"login":"jnm2","id":8040367,"node_id":"MDQ6VXNlcjgwNDAzNjc=","avatar_url":"https://avatars2.githubusercontent.com/u/8040367?v=4","gravatar_id":"","url":"https://api.github.com/users/jnm2","html_url":"https://github.com/jnm2","followers_url":"https://api.github.com/users/jnm2/followers","following_url":"https://api.github.com/users/jnm2/following{/other_user}","gists_url":"https://api.github.com/users/jnm2/gists{/gist_id}","starred_url":"https://api.github.com/users/jnm2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnm2/subscriptions","organizations_url":"https://api.github.com/users/jnm2/orgs","repos_url":"https://api.github.com/users/jnm2/repos","events_url":"https://api.github.com/users/jnm2/events{/privacy}","received_events_url":"https://api.github.com/users/jnm2/received_events","type":"User","site_admin":false},"labels":[{"id":375518165,"node_id":"MDU6TGFiZWwzNzU1MTgxNjU=","url":"https://api.github.com/repos/dotnet/project-system/labels/Bug","name":"Bug","color":"e52727","default":false},{"id":889269832,"node_id":"MDU6TGFiZWw4ODkyNjk4MzI=","url":"https://api.github.com/repos/dotnet/project-system/labels/Feature-WinForms","name":"Feature-WinForms","color":"0052cc","default":false},{"id":375512668,"node_id":"MDU6TGFiZWwzNzU1MTI2Njg=","url":"https://api.github.com/repos/dotnet/project-system/labels/Parity-Legacy","name":"Parity-Legacy","color":"bfd4f2","default":false}],"state":"closed","locked":false,"assignee":{"login":"davkean","id":1103906,"node_id":"MDQ6VXNlcjExMDM5MDY=","avatar_url":"https://avatars1.githubusercontent.com/u/1103906?v=4","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false},"assignees":[{"login":"davkean","id":1103906,"node_id":"MDQ6VXNlcjExMDM5MDY=","avatar_url":"https://avatars1.githubusercontent.com/u/1103906?v=4","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/project-system/milestones/29","html_url":"https://github.com/dotnet/project-system/milestone/29","labels_url":"https://api.github.com/repos/dotnet/project-system/milestones/29/labels","id":4447845,"node_id":"MDk6TWlsZXN0b25lNDQ0Nzg0NQ==","number":29,"title":"16.4","description":"","creator":{"login":"davkean","id":1103906,"node_id":"MDQ6VXNlcjExMDM5MDY=","avatar_url":"https://avatars1.githubusercontent.com/u/1103906?v=4","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false},"open_issues":43,"closed_issues":35,"state":"open","created_at":"2019-06-28T03:07:18Z","updated_at":"2019-09-23T09:14:46Z","due_on":null,"closed_at":null},"comments":26,"created_at":"2019-06-20T12:33:48Z","updated_at":"2019-09-23T11:51:28Z","closed_at":"2019-09-12T02:16:34Z","author_association":"NONE","body":"This is the last thing I know of that blocks SDK-style csproj from being used for .NET Framework Windows Forms projects in Visual Studio 2019 Update 1.\r\n\r\nMy only reluctance to file this is that I passionately dislike the LICX paradigm. The constantly-generated LICX cache file causes CI build failures and failures between developer machines due to outdated strongly-named versions of assemblies never being removed from the file when newer versions are referenced. This has been so much pain over the years that we banned it from source control. Any other way to license at all, or no licensing, would be extremely welcome for other reasons besides enabling the simplified csproj format.\r\n\r\nTherefore, either of these two outcomes is ideal for me:\r\n\r\n- DevExpress stops using LicenseManager as part of their licensing (no LICX!) ❤\r\n- The new project system implements what LicenseManager needs, **but** LicenseManager and/or the new project system is changed so that the LICX cache is gone or in the .vs folder, is no longer an embedded resource in the compilation, and does not affect the csproj. ❤\r\n\r\nThese outcomes would be sad:\r\n\r\n- Neither Microsoft or DevExpress changes anything. It is never possible to use the SDK-style csproj for .NET Framework Windows Forms applications. 😞\r\n- The new project system implements what LicenseManager needs exactly the way the old project system does. We're back to the LICX baggage. 😭\r\n\r\nSee also: https://www.devexpress.com/Support/Center/Question/Details/T740667/designer-fails-to-load\r\n\r\n**Steps to Reproduce**:\r\n\r\nCreate a control with the following code:\r\n\r\n```cs\r\n[LicenseProvider(typeof(LicFileLicenseProvider))]\r\npublic class SomeThirdPartyControl : Control\r\n{\r\n    private readonly License license;\r\n\r\n    public SomeThirdPartyControl()\r\n    {\r\n        license = LicenseManager.Validate(typeof(SomeThirdPartyControl), this);\r\n    }\r\n\r\n    protected override void Dispose(bool disposing)\r\n    {\r\n        if (disposing) license?.Dispose();\r\n        base.Dispose(disposing);\r\n    }\r\n}\r\n```\r\n\r\nBuild the project and then add a new form, open its designer, and add this control using the toolbox.\r\n\r\n**Expected Behavior**: The designer should open.\r\n\r\n**Actual Behavior**: \r\n\r\nDesigner crashes with E_NOTIMPL.\r\n\r\n```\r\nat System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)\r\nat Microsoft.VisualStudio.Design.Serialization.LicenseService.GetLicenseDocData(FileAccess access)\r\nat Microsoft.VisualStudio.Design.Serialization.LicenseService.FillLicensedTypes()\r\nat Microsoft.VisualStudio.Design.Serialization.LicenseService.get_LicensedTypes()\r\nat Microsoft.VisualStudio.Design.Serialization.LicenseService.OnComponentAdded(Object sender, ComponentEventArgs e)\r\nat System.ComponentModel.Design.ComponentEventHandler.Invoke(Object sender, ComponentEventArgs e)\r\nat System.ComponentModel.Design.DesignerHost.AddToContainerPostProcess(IComponent component, String name, IContainer containerToAddTo)\r\nat System.ComponentModel.Design.DesignerHost.PerformAdd(IComponent component, String name)\r\nat System.ComponentModel.Design.DesignerHost.System.ComponentModel.Design.IDesignerHost.CreateComponent(Type componentType, String name)\r\nat System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)\r\nat System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)\r\nat System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)\r\nat DevExpress.Utils.Serializers.ComponentCodeDomeSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration codeTypeDeclaration)\r\nat System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)\r\nat Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)\r\nat Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)\r\n```\r\n\r\n**User Impact**: This is the last thing I know of that blocks SDK-style csproj from being used for .NET Framework Windows Forms projects as of Visual Studio 2019 Update 1."},"comment":{"url":"https://api.github.com/repos/dotnet/project-system/issues/comments/534065731","html_url":"https://github.com/dotnet/project-system/issues/4938#issuecomment-534065731","issue_url":"https://api.github.com/repos/dotnet/project-system/issues/4938","id":534065731,"node_id":"MDEyOklzc3VlQ29tbWVudDUzNDA2NTczMQ==","user":{"login":"drewnoakes","id":350947,"node_id":"MDQ6VXNlcjM1MDk0Nw==","avatar_url":"https://avatars2.githubusercontent.com/u/350947?v=4","gravatar_id":"","url":"https://api.github.com/users/drewnoakes","html_url":"https://github.com/drewnoakes","followers_url":"https://api.github.com/users/drewnoakes/followers","following_url":"https://api.github.com/users/drewnoakes/following{/other_user}","gists_url":"https://api.github.com/users/drewnoakes/gists{/gist_id}","starred_url":"https://api.github.com/users/drewnoakes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drewnoakes/subscriptions","organizations_url":"https://api.github.com/users/drewnoakes/orgs","repos_url":"https://api.github.com/users/drewnoakes/repos","events_url":"https://api.github.com/users/drewnoakes/events{/privacy}","received_events_url":"https://api.github.com/users/drewnoakes/received_events","type":"User","site_admin":false},"created_at":"2019-09-23T11:51:28Z","updated_at":"2019-09-23T11:51:28Z","author_association":"MEMBER","body":"This was merged very close to our internal cut off for 16.4 preview 1. I suspect it'll be included in that first preview, though if not it'll definitely be in 16.4 preview 2."}}
other: {"actor":{"display_login":"drewnoakes"}}