When we do upgrades we just started getting the error message above. However, if I navigate to the PreReq folder (C:\ProductName\ISSetupPrerequisites\{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292}) and run vcredist_x86.exe and the go to the other prereq folder (C:\ProductName\ISSetupPrerequisites\{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378}) (in this order) it works fine and installs. I assume one of these is for C++ 2005 and one is for the SP1 version, but I'm not sure which is which.
I assume that the first one is for the first version and the second is for the SP1, cause if I install them in the reverse order it fails. Interestingly neither is selected as a pre-req on the Redistributables tab in Installshield. So the problem may be the order in which it's trying to install them. I don't even see C++ 2005 (non-SP1) in the list of Redistributables in IS, but for some reason two vcredist_x86.exe files are included in the release and when run in the right order (outside of the install) they work fine.
So how can I change the order in the installer or just get this to work? I reverted all of the changes in my .ism file to back before this started happening and that hasn't helped.
PS I also posted this question to the InstallShield forum.
From my understanding, there is no reason to install both of these VC++ 2005 redistributables. You likely only need the newer one.
Since you say that they are not checked on the Redistributables tab, it means they are likely added automatically by InstallShield at build time. This happens because you have the .NET Scan at Build option set to Dependencies and Properties on some of your components. With this setting, InstallShield scans the component files and tries to add any dependencies needed.
If you know what dependencies are needed, you can turn off that setting and then choose the necessary dependencies yourself on the Redistributables (or Prerequisites) tab.
There's nothing magical about these GUIDs - they are just the GUIDs that InstallShield uses in their pre-defined prerequisites:
{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378} is VC++ 2005 SP1 (x86)
{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292} is VC++ 2005 SP1 MFC Security Update KB2538141 (x86)
If the prerequisite you need is not included with InstallShield, you can define your own prerequisite. Go to Tools / Prerequisite Editor.
I have a windows form project and I want to create an installation package for this project. How can I create a setup file in Visual Studio 2012 ? My project is without data base.
How to create a Setup package using Visual Studio 2012.NET?
Microsoft released the Visual Studio Installer Project extension in April of this year, the catch is it's for VS2013, not VS2012.
http://blogs.msdn.com/b/visualstudio/archive/2014/04/17/visual-studio-installer-projects-extension.aspx
The 'lite' InstallShield option remains in VS if you need something with more flexibility.
Advanced Installer also has a free version that includes an extension for VS. This is a commercial tool but the extension is included in the free edition as I said, for more advanced features you need to purchase a Professional or higher licenses and edit the project direct from Advanced Installer GUI, not from VS. (but you can still use the project in the VS solution, so you get the MSI built at the end of your build process)
Visual Studio setup projects (vdproj) are not supplied with VS 2012
There are several solutions for you:
You could use InstallShield instead.
If you don't want or
can't use InstallShield for any reason, you could try WiX. This
toolset builds Windows installation packages from XML source code.
If you only use Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) you could look at ClickOnce. To use this you should right click on the project file in the solution explorer and select "Publish" from the pop-up menu.
Alternatively you can use previous version of Visual Studio (2010).
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.
I am using CMake 2.8.10.1 to generate project files for Visual Studio 2012 Ultimate (64-bit). The resulting solution contains a library, some tests, and some executables.
I would like to profile some of the applications. When I select "ANALYZE" -> "Start Performance Analysis," I encounter the error message "No launchable projects are available for profiling." How can I profile my solution generated by CMake?
It seems I've found a way to fix it. You need to add win32 configuration under your project. Then profiler will see your project as launchable.
For example, for the release configuration you should add the following
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
under
<ItemGroup Label="ProjectConfigurations">
Using the menu:
Build -> Configuration Manager
Goto row of the project to profile
In the platform column note that it will only have a x64 entry
Use dropdown <New...> and select Win32 for New platform:
-
That's a ridiculous bug in Visual Studio. QMake also suffers from this.
https://connect.microsoft.com/VisualStudio/feedback/details/823467/performance-wizard-doesnt-show-any-projects-to-profile-if-there-is-no-win32-configuration
I opened my vs2010 solution with vs2012 but it didn't make any conversion as from 2008 to 2010 was happening. So my solution still remains the same as 10 label on it. when I make a new solution of course it has 11 label on it. I haven't got any problem running like that but I am curious. Is there any difference? if yes, how to convert into vs2012 solution?
I managed to 'convert' the solution file to change the line containing '# Visual Studio 2010' to '# Visual Studio 2012' in the .SLN file.
Manual editing of the solution file is not necessary, or recommended. Simply open the VS2010 solution in VS2012, left-click the solution (at the very top of the Solution Explorer), then use File | Save As to overwrite the original file. This will effectively convert the VS2010 solution file to a VS2012 solution file.
There are some exceptions, but mostly you'll be able to open the same project and solution files files in both VS2012 and VS2010 SP1.
VS2012 may convert projects when you first open them, but the changes are (except noted in the document linked) backward compatible with VS2010 (ie using conditionals where needed to only apply to either version when loaded) Most project types will be left entirely untouched though.
It is about Visual Studio 2012 Compatibility
If you created your assets in Visual Studio 2010 with Service Pack 1 (SP1), many of them will load and run in Visual Studio 2012 without any further action on your part.
Many assets will also open again in Visual Studio 2010 with SP1 without any issues, even after you open those assets in Visual Studio 2012
For C++ projects it makes a difference, as the 2012 compiler (VC11) will only be used on projects that are explicitly 2012, not on 2010 projects opened in VS 2012. Some C++11 improvements are available with the VC11 compiler but not with VC10 (see this SO Answer for a summary), including:
Range based for-loops
New standard library headers (atomic, mutex, thread,...)
Smaller standard library container sizes
(And more to follow when the Nov 2012 CTP is delivered to VS 2012)
In order to convert from VS 2010 project to VS2012 there is no need to manually edit the solution file or 'Save As' over the existing project. Instead:
If you decline the update when first prompted, you can update the project later by opening the Project menu and choosing Update VC++ projects... [at the top of the menu options]
From MSDN's "How to: Upgrade Visual C++ Projects to Visual Studio 2012"
(This page was linked from #Joachim's MSDN link, but I wanted to have the answer here on SO since a number of other answers suggested manual workarounds instead of this VS 2012 feature)
In my case, I had some Visual Source Safe stuff (my project was created with Visual Studio 2003/2005, yes, very old!)
Once I manually removed the VSS stuff, the conversion succeeded.
PS: I know it's about VS2010, but maybe this helps others.
You can convert a project from VS2010 to VS2012 by doing the following:
Add the 2010 project to your VS2012 solution by right-click on your solution in the Solution Explorer and Select Add --> Existing Project...
The project will appear in the solution and will have (Visual Studio 2010) appended to its name.
Right-click on the added project and select Properties.
In the Configuration Properties --> General pane, change the setting in Platform Toolset field to Visual Studio 2012 (v110)
Repeat for each configuration type, e.g. Release and Debug.
I came across this question while googling for a solution to a specific problem: MSBuild was failing to execute the Publish target against a VS2012 solution that had started life in VS2010 when called from the command line (specifically through TeamCity):
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
MSBuild was looking for the Azure SDK 2.3 targets in the VS10 location (C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets). The cause is explained by Sayed Ibrahim Hashimi in a blog post and, as I understood it, boils down to some decisions they made while enabling cross-version compatibility for solution files. The solution was simple: add the VisualStudioVersion property to the MSBuild invocation, something like this:
msbuild.exe MyAwesomeWeb.sln /p:VisualStudioVersion=11.0
Practically speaking, this overrides the following in each csproj file:
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
Presumably you could get the same result by editing all of these by hand to replace 10.0 with 11.0 but that might break backwards-compatibility -- I haven't tried it. I also haven't tried an update to VS2013 to see if the problem persists.
So to wrap this up by answering the question: yes, there are some differences before you "convert" (using any of the methods offered by other answerers) and some differences remain afterwards.
This is slightly different, but along the same lines so in case it helps anyone:
I was loading a project where it looked like it was loading and then kept showing all projects as unavailable. No errors were on the migration report. I tried reloading the solution and projects many times, using various methods including suggestions here.
Finally I found a "Resolve Errors" option when right clicking on the solution in the Solution Explorer. VS went through a load process again and it worked; no problems.
I don't know what it did differently that time, but apparently it made a difference.
it's to simple just edit the .sol file
change the version to 11
like this
Microsoft Visual Studio Solution File, Format Version 12.00
Visual Studio 2012