-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
MSBuild SDK support for C++/CLI #42078
Comments
cc @olgaark for vcxproj related requests |
Hi, it is not clear to me what you mean by "SDK support in vcxproj" - can you elaborate? |
#1 - What I mean by SDK support is a project that use a Sdk attribute, like so: We could multi target the build like so: We could customize the build for a range of projects using Directory.Build.props and Directory.Build.targets Yes we could avoid duplication as you suggest, thank you, that helps for the vcxproj files, but for the other projects that reference the vcxproj and do support multi-target we need to have conditional references. As a user of this system, respectfully, its unwieldy. The SDK system is order of magnitudes better. #2 PackageReferences may be supported but Central Package Management is not. #3 Isn't this same windows platform only argument true for WinForms and WPF? I can build and run those just fine. The fact that C++ will not work with core based build tools is severely limiting. What is driving this decision? Sure I can build the project but I cant package it or publish it or run tests over my solution in the same manner if it was supported. #4 Yes msbuild project files are XML but no they are not just xml. There is a system for defining variables, importing other files, etc. etc. etc. The topic is quite deep and there are host of libraries available to tap into the MSBuild API for examining projects and how are they are fully evaluated. I cannot from within a core based application use the MSBuild interface to evaluate a vcxproj see: here. |
For item 2, adding @jeffkl to comment on CPM support for c++/CLI and any potential plans there. |
Stronger feedback: Please realize that as Microsoft announced end of life for .NET Framework, this lack of C++/CLI build support is a major catch-22 for long standing enterprise solutions. Thank you. |
Thank you for considering this request @marcpopMSFT I truly appreciate it.
What is also harder than it sounds is migrating thousands of projects from framework to core. And then even harder the pill to swallow when sqlproj and vcxproj have really painful integrations. I appreciate the effort that must be involved to be multi-platform, but we have been a windows shop since .NET 1. It really feels like we are being left behind despite our efforts to stay current. |
I appreciate the feedback that two of you have provided and we'll include it in our discussions with the various teams involved in the future. I believe most of our proposed ideas around getting dotnet build to support other targets still require installing VS (at least a build tools skus) as we don't have a good solution for acquiring the various props/targets/tasks that install with VS for supporting other project types. Would installing build tools be a problem (ie do we need to think through the props/targets acquisition problem as well)? Unfortunately, c++/CLI while part of .NET relies on components from C++ that come from VS which is why it's in that similar bucket. |
Hi, thanks for the added color. We currently install "Build Tools for Visual Studio 2022" on our build servers and all of our developers have a Visual Studio Enterprise installation. So in my opinion that requirement is acceptable. |
My team has a large code base that has a mixture of C# and C++/CLI projects across multiple solutions. We are a windows only shop so the performance gains and unmanaged interoperability of C++/CLI are essential to us, while cross-platform operability is not.
Upon migrating our codebase from framework to core we are experiencing multiple pain points:
Thus we request that SDK support be added for vcxproj files.
Thanks!
The text was updated successfully, but these errors were encountered: