Autodesk mentions here that AutoCAD plugins need to be developed with a particular Visual Studio version, e.g.
AutoCAD 2016 (supports Microsoft Visual Studio 2012 and 2013)
AutoCAD 2015 (supports Microsoft Visual Studio 2012)
...
Why is it like that? I understand that you need to use particular .NET Framework versions according to your AutoCAD versions.
But why the IDE? You can set your target framework version for each project.
Is it because of compiler / debuger issues?
We are planning to upgrade from AutoCAD 2012 to AutoCAD 2016. So we need a new IDE for our plugins and would prefer the latest Visual Studio version (2015)
This strict VS version is for ObjectARX/C++ only.
For .NET you just need the proper framework version to develop or, if you already have a DLL, legacy compatibility should work. But there is an exception, see below:
AutoCAD 2007 - 2012: compile your code with AcDbMgd and AcMgd and your code should work on all these versions (except if you use a feature that is not available on the version you're executing)
AutoCAD 2013 - 2017: this 'new cycle' also need reference to AcCoreMgd, therefore you need a separate compiled DLL
For C++ there is a additional requirement regarding Decorated Names and VS compiles the code using this. Therefore you can adjust the Toolset, but need the specific version installed to compile your code.
I might say that if you're using ActiveX/COM you have some different concerns: the references are different on 32 and 64 bit and between AutoCAD major versions, so it's easier to use late-binding or compile different DLLs for each version/platform.
Related
I have a visual studio package which currently targets .NET Framework version 4.5 and works with Visual Studio versions from 2012 up to 2019.
If I upgrade to .NET Framework 4.7.2, what does this mean for compatibility with different versions of Visual Studio?
Will it automatically make the package incompatible with older versions of Visual Studio (e.g. 2012, 2013 and 2015)?
if you install a specific version of .net framework you can see that in your target framework.
you can use this address to see all the .net SDK for visual studio
https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral
you must attention, if you want to using .NetCore in your project you must have a newer version of Visual Studio like 2017 or 2019.
An answer for those who doesn't need compatibility deeper than 2017
(But still ended up here from a search engine.)
Check system requirements.
For example, Visual Studio 2017 Product Family System Requirements says that:
Visual Studio requires .NET Framework 4.7.2 to run, and this will be
installed during setup.
This means that we can be 100% sure that it's safe to target 4.7.2 when targeting VS 2017.
P.S.: The reason I limit backward compatibility to 2017 is I don't see any mentions of .NET framework in the system requirements of older versions, so this method won't help with targeting older versions.
I'm porting all my development to Visual Studio 2017. I made heavy use of Portable Libraries in 2015, but it appears that .NET Standard is the way to handle cross-environment issues going forward. I've got a single file code generation extension that I've upgraded. In Visual Studio 2017, it works great against the traditional .NET libraries and portable libraries, but it doesn't work with the new .NET Standard library I'm trying to build. I'm happy to consider that I've done something wrong, but the GITHUB example doesn't work either:
https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Single_File_Generator
Anyone know why Visual Studio extensions (at least code generation extensions) don't work on this project type?
I have a Windows CE 5.0-based Platform Builder image. It is intended to be installed on Visual Studio 2005. My team would like to upgrade our build tools to utilize Visual Studio 2012, but Visual Studio 2012 does not support this platform image.
To be clear; I am not asking whether or not Visual Studio 2012 (or higher) supports Platform Builder SDKs targeting Windows CE 5.0. That question has already been answered (more or less), and the answer is clearly "No."
Instead, what I'd like to do is install the Platform Builder SDK, and manually modify the Visual Studio 2012 environment to allow compilation of my Windows CE code. Features like remote debugging and deployment are acceptable losses to my team; we have our own pathway for deployment and debugging on our embedded device. What I'm really hoping to gain is simply the ability to build WinCE 5.0 code in VS2012, which was intended for VS2005. I am attempting to reduce the number of Visual Studio installations, and get access to the superior intellisense faculties of newer versions of Visual Studio.
Does anyone know if this is possible? How would I go about doing that?
There does not appear to be a way to do this, in such a fashion as to no longer require Visual Studio 2005.
You can, however, use registry hacks to force Visual Studio 2012 to build a WinCE 5.0 project by utilizing the compiler binaries from Visual Studio 2005, during compilation. This would allow you to develop code in VS2012, but would also require that VS2005 be installed for a successful build.
Here is an article explaining the steps to set this up.
VS2012 doesn't have any of the Windows CE compilers. The last one that shipped with compilers compatible with CE 5.0 was VS 2008, so that's the "latest" version you'll be able to use to build. (VS2012 is capable of building for Windows CE, but only for WEC 2013, and only after installing a WEC 2013 SDK, which includes the requisite compiler pieces).
In short, there's no way you can get VS2012 by itself to compile a CE 7.0 or earlier app.
There is a plug-in for VS 2013 that will allow you to use that IDE for managed code (I've never used it, so I can't say how well it works), but it still requires VS 2008 to be installed to get the compilers.
I know it's possible to switch to a different "Platform Toolset" in Properties. Since I want to keep VisualStudio 2010 (plugins, etc) but also want to use C++11 features, how can I add a newer compiler version? The windows sdk does not come with a build pipeline anymore. I tried installing VisualStudio Express 2013, but that didn't help. I know I could just use the Express version, but I have several Plugins (EA, CodeXL) that I bought for VisualStudio2010.
Any hints would be appreciated
I recently downloaded VS 2010 trial, the new version is more easy to use.
I have VS 2008 installed, If i decide to use VS 2010 in the future, do I still have to keep VS 2008? Is there any compatibility issue with it?
You would need to keep VS2008 installed if you target Windows CE (via Compact Framework, native smart device projects, etc.)
http://msdn.microsoft.com/en-us/library/sa69he4t.aspx
Also if you want to write native applications that run on versions of Windows before XP SP3 and Server 2003 SP2, this is no longer possible with VC++ 2010. The same applies to managed code written for the .NET Framework 4.0, but you can still use Framework 3.5 with VS2010 for projects with managed code only.
And Intellisense for C++/CLI code is gone (MS promises to remedy that in the future, whether a service pack or the next version I cannot say).
If you open a VS 2008 solution or a project in VS 2010 it will be converted to VS 2010 and you will not be able to open it in VS 2008.
If that is not a problem then you don´t have to keep VS 2008, unless you are using a addin or some other third party application with VS 2008 that is not compatible with VS 2010.
Edit:
Look at Ben Voigt´s answer for information for which version have support for different platforms.
VS2010 allows you to specify the target framework that you'd like to develop on. There should be no reason to keep VS2008 installed unless you've become accustom to some handy plugins :)