VS2012 C++ Runtime library does not appear in Publish Prerequisites - visual-c++

I am using ClickOnce to deploy a C# application with a reference to a C++ project, using VS2012 on Windows 7.
In VS2010, I was able to VC++ 2010 runtime library as one of the prerequisites, however in VS2012, there is no such equivalent.
When running the deployed app on a non-developer machine, I receive an error that the C++ project could not be loaded.
I installed the VC++ 2012 redistributables from
http://www.microsoft.com/en-us/download/details.aspx?id=30679 but I still don't see this option in the prerequisites.
When I browse to: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages\
there is a package.xml that says:
You do not have the permissions required to install Visual C++ 2012 Runtime Libraries (x86).
Which makes no sense because I am an Admin on this computer.
Has anyone been able to deploy a .NET project in 2012 with a reference to a C++ project?

Related

Visual Studio Migration 2015

We have around 100 projects in our solution built on Visual studio 2008. We migrated projects to Visual studio 2015. After migration, when the build is triggered to TFS build server, we are getting the below error:
"The type or namespace name does not exist in the namespace" (are you
missing an assembly reference)
Also note that the Build server has Visual studio 2012.
You need to make sure the environment on the build agent are as same as your local developer machine.
Since you can build the solution locally with VS2015 successfully, suggest you also install VS2015 on you build agent and try it again. (To make the environment clean, you can uninstall VS2012 first)

Can a compiled application be tracked back to a machine?

I've compiled an application in Visual Studio 2012 but I'm unsure about the legality of the Visual Studio application.
With no way to find out and the potential for the Visual Studio environment to be illegal could there be any legal repercussions from compiling an application in that environment if the recipient of the .exe has no idea about the source other than having the compiled application?
The install of VS2012 is a hand me down and I'm publishing the app to a wide audience so i just want to be sure it's safe no matter what the source development environment is.

Can an application built with VC++ 2010 run reliably with just the VC++ 2013 redistributable installed?

So here is my situation: We have some applications built using VC++ 2010, but others are now built with VC++ 2013.
In the past, when setting up a client machine, only VC++ 2010 Redistributable was installed, but with the development of some of these applications now in VC++ 2013 we need to install the VC++ 2013 Redistributable.
I know that the Redistributable packages are installed side by side and that applications developed in VC++ 2010 will go to their appropriate file set if it exists on the machine.
But can a VC++ 2010 project run reliably with just the VC++ 2013 redistributable installed?
This question occurred to be when I saw that Microsoft named the VC++ 2010 and 2013 redistributable install files the same. For example, vcredist_x86.exe.
Thanks for your time!
No, your VS2010 built app will need msvcr100.dll (etcetera), the VS2013 installer will deploy msvcr120.dll
Doing anything to force VS2010 to use the VS2013 runtime library is very unlikely to turn out well. The new C++11 language standard has caused lots of upheaval in the runtime libraries. The good kind of upheaval, but not exactly very compatible with old compilers.
You must therefore install the VS2010 runtime libraries as well.

Targetting Windows XP from Visual Studio 2012 when using C++ DLL

I am trying to execute a C# program on Windows XP (SP3) which references a managed C++ DLL compiled with VS2012. When compiling the C++ DLL, I have set the Platform Toolset to build to Windows XP (using the v110_xp option) and set minimum required version to 5.01 in linker options, and I already installed Visual C++ 2012 Redistributable Package on the Windows XP machine. But it didn't work.
Any idea on this?
As you mentioned Platform Toolset and v110_xp option, I'd risk assuming the question is about an unmanaged C++ DLL. Anyway, try compiling your DLL with the original VS 2012 distribution (no updates) and see if it works. I dealt with a similar issue caused by VS 2012 Update 2, which is described here. You could test each of your dependency DLLs (including VC++ redistributables) with DependencyWalker, to check if any of them is using a Win32 API not implemented by Windows XP. Just do it under XP itself.

Corrupt C runtime library?

I'm using Visual Studio Professional 2012 (with Update 2) and since I have a project that needs to be built with the VC++ 2010 toolset I also installed Visual C++ 2010 Express (with SP1).
I use the newer 2012 IDE also for the older projects. So for these projects I set the Platform Toolset to v100. And when I also set the runtime library to /MT or /MTd I get the following error:
error LNK1127: library is corrupt
for libcpmt.lib or libcpmtd.lib, depending on the configuration.
What could be wrong here?
Installation history:
VS2012 Professional
Windows 7 SDK
Uninstalled VS2012 and Windows SDK
VC++ 2010 Express
VS2012 Professional
If I understood correctly, you installed VS2010 after installing VS2012? If not, please edit your question to make it clear.
This sequence of installations is not recommended by Microsoft, and there are plenty of caveats and ReadMe's to navigate in order to find out what's happened.
I suggest that the best thing to do is to reinstall VS2012 (or do a repair install), then see what - if anything - is still broken.

Resources