I am building a setup project for windows desktop application using Visual Studio 2013 and Instal Shield 2015 Limted Edition.
This application has two dependent run time environment
SQL Server 2012 LocalDB
Adobe Flash Player ActiveX
The option 1 is already listed in the installshield Redistributable and i am able to include but i couldn't find any redistributable item for option 2.
My setup project need to check the Adobe Flash Player ActiveX status in the machine, if not found then it has to install it automatically before installing the actual application.
Any Merge module available for Adobe Flash Player ActiveX?
How to do the same?
I have installed professional edition of installshield software(trial)
src .
Followed the tutorial youtube to create a new Adobe ActiveX.prq file
Included the same in my setup project and my setup able to detect the Adobe ActiveX status and act as required.
XML Code of my Adobe ActiveX PreRequisite File(open .prq file in Visual Studio to see the same)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<SetupPrereq>
<conditions>
<condition Type="1" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX" FileName="" ReturnValue=""></condition>
</conditions>
<files>
<file LocalFile="<ProgramFilesFolder>\InstallShield\2015LE\SetupPrerequisites\Adobe ActiveX\flashplayer_21_ax_debug.exe" URL="https://fpdownload.macromedia.com/pub/flashplayer/updaters/21/flashplayer_21_ax_debug.exe" CheckSum="F60EDF21DC3F89980651BE01FFB22F9F" FileSize="0,19762368"></file>
</files>
<execute file="flashplayer_21_ax_debug.exe"></execute>
<properties Id="{72D7E3D1-C9DF-4FA6-9F9B-4E5117AB2920}" Description="This prerequisite installs the Adobe ActiveX V21." AltPrqURL=""></properties>
</SetupPrereq>
This code will help someone in need.
Related
My question is nearly identical to this How to publish ASP.NET Core app to ftp server with the exception my question is .NET (where as the linked question is for ASP.NET).
However, I think I can follow the instructions on that link. I click Publish, and choose Import Profile and I import the following
<?xml version="1.0" encoding="utf-8"?>
<publishData>
<publishProfile profileName="FTP" publishMethod="FTP" publishUrl="ftp://ftp.domain.co.uk/project/" userName="user" userPWD="***" destinationAppUrl="http://www.domain.co.uk/Software/project/" />
</publishData>
When I do this and click I finish, I see
Object reference not set to an instance of an object
This used to be very simple with .net framework and click once.
Is it possible to publish a .NET Core console application over FTP in Visual Studio 2019?
I have spent the last 2 hours Googleing around this subject and not being able to get this to work so hoping some Visual Studio Guru will be able to help me out.
First some basics.
I am developing on Windows 10 with Visual Studio 2013 Professional(32 bit) and my VS is linking perfectly fine to C:\Program Files (x86)\Windows Kits\8.1
I also have the 8.0 version of Windows Kit installed but from what I can tell this isn't being used by VS2013. Similarly I have Visual Studio 2010 installed but not being used for this project.
My code requires use of the IsWindows10OrGreater() function from VersionHelpers.h which is only available in Windows kit 10.
I have installed Windows Kit 10 and this has installed to C:\Program Files (x86)\Windows Kits\10
So far so good. The installation of Windows Kit 10 created an environment variable. It did not remove the old Windows Kit 8.1 Environment variable but I have since tried that to resolve the problem without success.
The problem is visual studio 2013 is linking to the 8.1 sdk.
I have tried adding the 10 path to the INCLUDE, LIB and LIBPATH(its already in PATH) as I saw these where getting set in vcvars32.bat. This didn't work.
After quite a bit of digging I managed to find under project>properties>C/C++/Preprocessor>Preprocessor Definitions and in the Macros I noticed that there are a some Marcos defined that point to C:\Program Files (x86)\Windows Kits\8.1 but I can find no way of altering these macros.
Can anybody tell me how I can configure Visual Studio to point to the correct SDK.
Thanks in advance
Tomas
Based upon my old SDK 8 for VS2010, I made up this property sheet which appears to work.
You'll want to verify the folders are correct for your WDK 10 installation and note that this is for x64 only.
Create file Windows10SDK_X64.props
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<ExecutablePath>$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(ProgramFiles)\Windows Kits\10\bin\x86;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)\bin;$(MSBuildToolsPath32);$(VSInstallDir);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
<IncludePath>$(ProgramFiles)\Windows Kits\10\Include\10.0.10240.0\um;$(ProgramFiles)\Windows Kits\10\Include\10.0.10240.0\shared;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(FrameworkSDKDir)\include;</IncludePath>
<LibraryPath>$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(ProgramFiles)\Windows Kits\10\lib\10.0.10240.0\um\x64;$(FrameworkSDKDir)\lib\x64</LibraryPath>
<ExcludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(ProgramFiles)\Windows Kits\10\Include\10.0.10240.0\um;$(ProgramFiles)\Windows Kits\10\Include\10.0.10240.0\shared;$(FrameworkSDKDir)\include;$(MSBuildToolsPath32);$(VCInstallDir)atlmfc\lib;$(VCInstallDir)lib;</ExcludePath>
</PropertyGroup>
<ItemDefinitionGroup />
</Project>
Make sure to clean and rebuild.
I have developed a 32-bit C++ application using Visual Studio 2015 (on Windows 10). I want to deploy it onto machines running Windows 7 and later.
I put together a WiX installer and included the VC++ redistributable merge module as described here. The merge module I included was C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC140_CRT_x86.msm.
This installer appears to work fine but on Windows 7 the installed program will not run, complaining about missing api-ms-win-crt-runtime-l1-1-0.dll.
From searching I suspect that there may be extra files in the redistributable package vc_redist.x86.exe from here, but the WiX docs tell me to use an msm rather than an exe.
It's also possible that the merge module failed to install. I didn't see any errors but I haven't re-run it with logs enabled to check that possibility.
Another option may be to use burn but I am not familiar with this tool; I will go that route if it's the correct one but I'd prefer to stick with MSI if possible.
The VC++ runtime redistributables got more complicated in Visual Studio 2015. See the VC team blog post about the universal CRT. Basically, the merge module is insufficient:
There will not be a merge module for the Universal CRT. If you currently use the CRT merge modules and still want to deploy the Visual C++ libraries centrally, we recommend that you move to the above mentioned Windows Update package or to the VCRedist. Alternatively, you may choose to link statically to the Universal CRT and the Visual C++ libraries.
We ran into the trouble that the MSI package failed to install the redistributable with MSI Error 1618: 'Another installation is already in progress' during installation/uninstallation. We installed the 2015 redistributable with WIX by using a Bootstraper. For example:
<Chain>
<!-- Microsoft Visual C++ 2015 x86 libraries -->
<ExePackage Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
SourceFile="EXAMPLE_PATH\vc_redist.x86.exe" InstallCommand="/install /passive /norestart">
</ExePackage>
<MsiPackage Id="MainPackage" SourceFile="YOUR_MSI_PACKAGE.msi" DisplayInternalUI="no" Compressed="yes" Vital="yes"/>
</Chain>
It's worth noting that it is now possible to distribute the Universal C Runtime DLLs with your application. The MSDN blog post describes the steps:
Install the Windnows 10 SDK
Go to C:\Program Files (x86)\Windows Kits\10\Redist\ucrt and find the DLLs for the platform you are targeting
Copy them into your application's program directory
They are not big. About 2 megabytes in total.
I ended up using this technique because:
It does not require me to create a separate WiX package and then bootstrap them;
It does not require the user to run any extra installers
I cannot speak to whether it would work on all computers, but it works on the ones I have tested.
I am new to WiX and have built a standalone installer. I would like to detect if the system has .NET 4.5 on it and prompt the user to install this. My development environment is Visual Studio 2010 using the WiX 3.7 toolset.
From some of the tutorials I have seen I should either use WiX 3.6 Burn or use the WiX bootstrapper project template in Visual Studio 2010.
For some reason, when I installed Wix 3.7 I don't have the bootstrapper template (I am not sure if I am missing an extension to download).
Is it better to use the bootstrapper template over Burn? What are the differences?
You need to create a new project named "Bootstrapper Project" (this template must be in your Visual Studio 2010 installation, related to the Windows Installer XML). Here are very good blog posts with manuals:
Introducing Managed Bootstrapper Applications by Heath Stewart
WiX Burn – tips/tricks by Neil Sleightholm
Wix burn, is Wix Bootstrapper. They are the same thing. Burn is simply the name given to the Wix Bootstrapper, but they do tend to switch around between calling it "wix burn" and "wix bootstrapper". But as I've said they are the same thing.
Here is my wix bootstrapper which checks for version of .net then downloads and installs it before installing my .msi You will need to add a reference to WixNetFxExtension.dll
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Bundle Name="MyProgramInstaller" Version="1.0.0.0" Manufacturer="myCompany" UpgradeCode="yourcodehere">
<!-- here's the license statement, would suggest you update this to something more useful. -->
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<!-- here's the .net download installer you can change this using the following chart -->
<!-- http://wixtoolset.org/documentation/manual/v3/customactions/wixnetfxextension.html -->
<PackageGroupRef Id="NetFx451Web"/>
<MsiPackage Id="myProgram" SourceFile="$(var.SolutionDir)SetupProject1/bin/Release/myProgramInstaller.msi"/>
</Chain>
</Bundle>
</Wix>
I'm trying to fix a bug in VsClojure whereby Visual Studio does not recognize a file with the extension .cljproj as a Clojure project. This only happens when VS is not already open; in other words, if you open VS and then open a solution containing a Clojure project, it recognizes the project. But if you open the solution from Explorer or try to open the project itself from Explorer, it says "This project type is not recognized by Visual Studio."
My hunch is that whatever Visual Studio needs to load in order to recognize this project type is not loaded soon enough when opening the project from Explorer, but is loaded when Visual Studio is already up and running. My question, then, what is it that Visual Studio needs to load in order to recognize an extension's project type? And how do I tell Visual Studio to load it?
I've looked through MSDN's VSIX documentation for answers, but there is a ton of documentation to go through, and in what I looked at, I saw nothing pertaining to this question. I've also looked at IronPython's extension, but it seems to be structured completely differently from VsClojure's. Any help would be much appreciated.
You must add the project type to the registry so Visual Studio can recognize and load the *.cljproj file. See this MSDN article for details along with this article with all the steps involved when adding a new project type.
Unfortunately you can't make this changes from a VSIX, as MSDN states:
The VSIX format uses strictly file-based deployment and does not
support writing to the Global Assembly Cache (GAC), or to the system
registry.
Instead you will need to create an MSI installer. In that case pick your MSI creation method. IronPython uses Windows Installer XML (WiX) toolset so you can use that as your example. Here is a snippet from the WiX XML that sets up some of the registry for the project type:
<Component Id="Comp_PyProgRegistration" DiskId="1" Guid="A7BC75A8-F418-4133-8BF9-490A76E99108">
<RegistryValue Root='HKCR' Key='.pyproj' Type='string' Name='PerceivedType' Value='text' />
<RegistryValue Root='HKCR' Key='VisualStudio.Launcher.pyproj.10.0\DefaultIcon' Type='string' Value='[IpyToolsInstallDir]PythonProject.ico' />
<ProgId Id="VisualStudio.Launcher.pyproj.10.0" Description="IronPython Project">
<Extension Id="pyproj" ContentType="text/plain">
<Verb Id="OpenPyProj" Command="Open" TargetProperty="VSLAUNCHER" Argument=""%1""/>
</Extension>
</ProgId>
</Component>
Check out the Msi directory under in the IronPython source tree for the full example.