I have WPF .Net core 3.1 Desktop Application and trying to Add MicrosoftEdgeWebView2Runtime as prerequisite with Clickonce but I'm not able to find in prerequisite list.
Thanks in Advance.
Ravi V.
Try to follow this guide.
I think that in your case you have download WebView2 installer and place it under, either Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\, or <VS Install Dir>\MSBuild\Microsoft\VisualStudio\BootstrapperPackages\ together with product.xml file where you define how WebView2 should be installed.
Related
I have a WPF application which is distributed by ClickOnce. ClickOnce handles well prerequisite like LocalDb and .Net Desktop Runtime. I started to use Identity in the program so now I need ASP.NET Core Runtime as well, but it is not in the list.
I have sent the problem to MS 3 weeks ago, but no response from them.
https://developercommunity.visualstudio.com/t/ClickOnce-prerequisite-ASPNET-Core-Run/10179285?
I started to look how to add a custom prerequisite but the descriptions was quite old or not detailed. Does somebody have a good description?
UPDATE 1
I did some research.
On windows 10 my Bootstrap directory is at "c:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages". But here are only some of the prerequisite, for example SqlLocalDB2019 but not net 5. Why is that?
I have found some useful stuff, an old and a new. They provided the product.xml and the en/package.xml. I have copied the files to the Packages folder but the new prerequisites did not show in VS. I also tried to copy and modify slightly the existing SqlLocalDB2019 folder but the new version did not show either. What am I missing?
What changes do I need in the two files once the prerequisite appear?
There are two location for prerequisites
"c:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages"
"d:\Program Files\Visual Studio 2022 Community\MSBuild\Microsoft\VisualStudio\BootstrapperPackages"
I did not found the problem the old examples but I was able to add my own prerequisite.
See: https://stackoverflow.com/a/74536380/5852947
Adding MVVM Light reference to a WPF projects adds a large number of system assemblies to the list of dependencies in the accompanying MSI Setup project. These assemblies (50+ in number) are then copied to the application folder when the app is installed. Why is it so? Why can't it reference it from GAC directly?
Note: Copy Local option is set to True for MVVMLight.dll. I obviously can't set it to False.
Reproducing it is extremely simple. I'm using VS2015 Community.
Create a new WPF Application project.
Add NuGet reference to MVVM Light (or the Lib-only version; doesn't matter).
Add an MSI Setup project to the solution (must have the extension installed).
Add Primary Project Output of WPF application to the setup project.
There you go. A long list of System.X.Y will be added to the list. If you build and install the setup project, you'll see all these DLLs in Program Files folder.
Why? And how to fix it?
Update
The problem does not appear if WPF application targets .NET Framework 4.0 and you add NuGet reference AFTER that. But if you target .NET 4.5, 4.5.1 or 4.6, the long list of dependencies appears again. Think MVVM Light (or NuGet) is having trouble finding the correct package sub-folder.
I don't know why it happens but I can offer a workaround. Just open the project's Detected Dependencies folder, select all of the System dlls, right-click and select Exclude.
Overly agressive dependency scanning is one of the many reasons I don't use Visual Studio Deployment Projects. Instead I use WiX / IsWiX. Both open source and the later written by myself.
For more information see:
http://www.github.com/iswix-llc/iswix-tutorials
I have a VS 2010 C# "solution"; It creates an .exe file, and a .pdb file when doing a build in Release mode which I use in the InnoSetup build of the installer.
My app uses several .dll's from other vendors (i.e. WinSCP). My question is: do still build the installer using InnoSetup, substituting the new .exe from .NET Reactor for the one created by Visual Studio? The only thing I want to obfuscate using .NET Reactor is my app, not the other vendors.
(I have looked in Google and SO, and did not find an answer.)
You could directly substitute the exe/dll before you build the installer.
In case you want to automatically protect a VS project file output (exe/dll) before it is packaged into your into you setup you could use the .NET Reactor Visual Studio Add-in.
Install dotFuscator then you will be able to add its project type in source code as new project. There you can set output files to obfuscate.
I have a setup project to install a Windows Forms application. When I build this setup project, I get a warning that says:
WARNING: The version of the .NET Framework launch condition '.NET Framework 3.5' does not match the selected .NET Framework bootstrapper package. Update the .NET Framework launch condition to match the version of the .NET Framework selected in the Prerequisites Dialog Box.
I can see in the launch conditions window that .Net Framework 3.5 is selected
Then when I go see the prerequisites window Net Framework 3.5 SP1 is selected.
What can I do to get ride of this message, the launch window dropdown does not contain 3.5 SP1 and the prerequisites window list does not contain 3.5 without sp1?
Thanks to you all!
A solution is to create a custom prerequisite for .NET Framework 3.5. Visual Studio setup projects do not support custom prerequisite creation. However, it can be done by manually generating the required manifests.
You can find the manifests structure here: http://msdn.microsoft.com/en-us/library/ms229223(VS.80).aspx
These manifests can be generated automatically with the Bootstrapper Manifest Generator tool.
After generating the package manifests, you can add all these files (including the package) in a separate folder in the Visual Studio prerequisites folder, for example:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages
You can then select the custom prerequisite in your setup project Properties page.
Another solution would be to remove the launch condition completely and use just the prerequisite.
I have created one WPF application...
Now, in installshield, i want to make installation package for the same, so which project type i should select?
Actualy, now i have used basic MSI project....
but m still struggling with another problem....
i have created setup in English and German languages.... and i want to install .Net framework language pack according to the language selected by user....
Can any1 help me out...??
The C# wizard adds the InstallShield project to your visual studio solution. Personally I never put my application code and installer code in the same solution so I would just choose the Basic MSI project type.