InstallShield Extension Condition DLL in .NET - installshield

I'm writing a Suite Installer in InstallShield 2012 Spring Premiere and am including an Extension Condition DLL in the project. I have a .NET version of the library that is included with my application and I'd like to add on the Extension Condition APIs to it so that I don't have to write a C++ version of the exact same code.
Has anyone done this before? Is there a sample project I can look at? KB Article reference?
Many thanks!

may be you can make your .Net Dll COM Visible. Look at this article.
http://jumbloid.blogspot.ca/2009/12/making-net-dll-com-visible.html

Related

How to embed Visual C++ runtime required from third party dlls

I have a software that is coded in C#. It depends on two(!) third party dll which require Visual C++ 2008 and Visual C++ 2005 redistribute. Originally the installer was built in InnoSetup with all "vs200x_sp1_vcredist_x??.exe" embedded and run on install time. However since it lacks of some advanced features we decided to migrate to Wix Toolset.
The problem is, MSI was running in a more restricted environment, so I didn't figure out what is the best way to require those redistributable file being executed properly. I was tried to use merge modules instead but it didn't work - I can see that the files were installed but dependency walker shows that dll is still not link to the right version.
I think that WinSxS makes things worse at least in this case, since the software keep failing with some error message regarding "Windows Side by Side configiration (14001)" when I use the merge module approach.
So the question is:
Are there any way to build a MSI that runs a exe that install some prerequisites? I wouldn't mind those prerequisites being downloaded or just embedded.
I know that WinSxS information is stored in the manifest of the dll. So if I was permitted to remove the manifest information by the third party company, and use dynamic dll loading instead the problem could be resolved. However is this legitimate? Since I will then need to embedded the Microsoft dlls directally in the msi.
I have noticed one of the dll's manifest says its required version is "9.0.21022.8" but the one in my MSM file is "9.0.30729.6161". Is this the issue? If so can I resolve the issue by I modifying the manifest to allow the right version? I don't think this will cause the dll not working, anyway.
The msi file should install only your software. If you need to install pre-requisites, you should use a bootstrapper for it. Bootstrapper's responsibility is to install pre-requisites and it's not a task of your msi.
If you see that wix bootstrapper is complex you can try on a simple bootstrapper like the dotnet installer bootstraper. you can download it from
http://dblock.github.io/dotnetinstaller/

MVC5: Where could I get System.Web.Mvc.pdb?

I want to debug into MVC5, but I meet the error below:
Where could I get System.Web.Mvc.pdb file? Please help me.
You could use dotPeek (free .NET decompiler with debugging functionality, by JetBrains). https://www.jetbrains.com/decompiler/
For other .NET assemblies you could also, in your VS, go to Tools, Options, Debugging, General and select the options "Enable .NET Framework source stepping" and "Enable source server support", which will download symbols for some .NET assemblies. It will not download symbols for the MVC assembly though as it is not considered part of the basic framework.
Have you tried looking into http://aspnetwebstack.codeplex.com/ ?
You should be able to download the source and build with debug mode to get the PDB.

How to patch .NET dll to the GAC using InstallShield QuickPatch?

I'm trying to patch a .NET DLL file using the Quick Patch project of InstallShield. The DLL needs to be registered for COM Interoperation.
When I patch the file, the dll seems to be replaced correctly in the GAC, but when I try to access it from my application I get an error indicating that the application cannot connect to the DLL.
I think that it is not being registered properly for COM interop, but I'm not sure about it.
Any idea of what should I do to make it work?
Thanks,
You probably have to run regasm(it's in .NET framework directory) with correct params to register for com interop. Also the DLL file is usually built with certain COM visible options selected. Been a long time since I dealt with that nightmare though, so can't remember all the details.
http://msdn.microsoft.com/en-us/library/tzat5yw6(v=vs.80).aspx

Can't open NerdDinner project in vs2008

NerdDinner.csproj won't load in vs2008 sp1 with .net 3.5 sp1. Am I not up-to-date on these tools or something? It complains this project type not supported on this installation.
Do you have the ASP.NET MVC Framework installed? If not, you need it. NerdDinner is an example of an MVC Framework project, and you won't be able to open it or run it without the ASP.NET MVC Framework installed.
You can find the appropriate installation information at http://www.asp.net or more specifically http://www.asp.net/mvc
In my I had to change the value of the "ProjectTypeGuids" in the project file. I copied them from another MVC project that I had created with my version of VS 2008.
This is the post that gave me the answer:
http://www.stuffthatjustworks.com/How+To+Fix+Xcsproj+Cannot+Be+Opened+The+Project+Type+Is+Not+Supported+By+This+Installation.aspx
In my case...it was the wrong version of the framework.
I just copied the from another asp.net mvc project I had made. (then you probably have to fix up the references, which is trivial with resharper :-) )

Sharepoint WebPart, include additional assembly in wsp package

I created a utility library for my Sharepoint WebParts. Now when I reference this library from my WebPart project, it compiles fine, but the library is not included in the .wsp package. This means the library assembly is not deployed to the target system, causign the WebPart to fail.
Is there any way to fix this? I am using Visual Studio 08 & VseWSS 1.2.
Brij's answer is partially correct, your VSeWSS version is the problem. This feature only came in version 1.3 (I recommend the March CTP) to have the CopyToLocal=true automatically add the assemblies to the GAC for you.
Right click of Assembly > Properties
Set “Copy Local” property = true
Build project.
See following for more details:
http://urenjoy.blogspot.com/2009/08/add-assembly-wsp-vsewss.html

Resources