Wix ManagedBootstrapperApplicationHost and Caliburn Micro - mvvm

I'm using Wix 3.8 for building my installer files. For my boostrapper bundle I want to build my own gui with the ManagedBootstrapperApplicationHost. I found an example at: Custom WiX Managed Bootstrapper Application
This application is using MvvM Light. How can I use Caliburn Micro and Mef instead? I have tried to build up the standard mef bootstrapper and call:
new AppBootstrapper();
in my overridden Run method. But I get a NullReference exception here. How can I manually call the Caliburn Micro Bootstrapper from code?
Regards Markus

Related

Consume a SOAP Service in an Azure function

Environment
Visual Studio 2017 Enterprise on MAC, Mono 5.12.0.309
Problem
I've successfully built and packaged an Azure Function. Now, I'd like to call a SOAP Web service in the function (over which I have no control). I added a Web Reference to the published WSDL and tried to compile the function which resulted in a ton of errors primarily indicating "System.Web.Services" namespace is missing.
"System.Web" doesn't seem to be part of .NET Core 2.1 (that is referenced in the function project). How would I then add a reference to "System.Web.Services" assembly? Is there a NuGet package?
UPDATE
Part of this was my lack of understanding of what .NET Core actually is. Since I'm using .NET Core, I can't make reference to assemblies that are targeting .NET Framework. "System.Web.Services" seems to be one.
Now the question becomes, how one would then call SOAP Services from .NET Core application?
You can use the new WCF client side stack on .NET Core: https://github.com/dotnet/wcf
There is a good sample to a question on this thread: Calling a SOAP service in .net Core

Limit the code a plugin can run in dotnet core

I'm looking at implementing a plugin architecture where I will have end users write plugins that I will execute in the application I'm developing (.net-core 2.0 console application). I load the plugins dynamically at runtime and they implement a plugin interface in a shared assembly. I do want to limit the actions that the user can perform from the plugin and therefore I provide the plugin with an API object. Is there a way to limit the plugin so that it only can use that API? In .NET 4.x I could do this with AppDomains and Code Access Security but haven't found a way to do the same in dotnet core yet. Any ideas how to solve this?

How to skip action defined in Installer's BeforeUninstall function when upgrading to WiX

Our current setup project created using vdproj needs to be migrated to WiX.
During the process, we are facing problem while upgrading existing vdproj msi to WiX msi.
The existing implementation performs some action on 'BeforeUninstall' event of Installer, which should not be called when upgrading, but on using WiX msi, this action is being called.
How to skip this event while upgrading using WiX installer?
I have tried setting properties like 'PREVIOUSVERSIONSINSTALLED', 'NEWERPRODUCTFOUND' but still the action is called.
If you're doing a major upgrade in WiX you should be using the MajorUpgrade element. If there is an upgrade going on, it will set the WIX_UPGRADE_DETECTED property as documented here:
http://wixtoolset.org/documentation/manual/v3/xsd/wix/majorupgrade.html
I strongly recommend you get away from the installer class method of running custom action code and look at the DTF managed code custom actions. I don't know that you can call installer classes from WiX anyway, because in VS they depend on infrastructure (the installutilb Dll) that is proprietary to Visual Studio.

InstallShield MVC2 Application deployment on IIS

I want to be able to deploy a MVC2 application as a web application on IIS using the installshield. When I try to deploy the application it just simple copies the whole solution to IIS instead of converting it to a web application. I created an MSI using VS2010 which converts the code into web application and then called that through installshield installer (which basically does some other stuff as well). But it creates two references in installed programs visible through Add/Remove Programs which in turn makes me uninstall both in order to completely remove the application. Any suggestions on how to go about at this?

Deploying COM dll as part of Silverlight application

I have a legacy delphi dll.
I created a class library that imports the dll and registered it for COM interop.
I have an experimental Silvelight 4 application that calls the COM object and it works. The problem is: how do I deploy the COM component (and dependent delphi dll) and register the COM object on a client machine?
The COM component will need to be installed explicitly on the client machine. The standard Silverlight deployment does not (by design) support installation of COM components.
Typically, the COM interop in Silverlight is really intended to work with System COM routines that already exist on the system - if you're doing native code interop with native code deployment, normally, you'd just use a full desktop application developed with WPF.