BMC.ARsystem.dll and Windows Server 2012 compatibility - windows-server-2012

Is BMC.ARsystem.dll version 7.1.3128.23911 supported on Windows Server 2012? Does anyone has experience with this? I was looking for a compatibility matrix or the like on their website (communities.bmc.com)
Due to urgency of the matter from my perspective, I raise it here in addition to the forums there (it's been there a while now, compared to here). Please do let me know if this is not the proper place to put these questions, and sorry in advance if this is the case.
Thanks!

I don't know if you figured this out, but we spent three days on it.... so I thought I would share it here.
We have deployed BMC.ARSystem.dll on Windows Server 2012. We are using version 7.6 and we are using it in an ASP.Net project with .NET Framework 4.5.
These were the special steps we had to take:
Set your appliction pool identity in IIS to run in a 32 bit
compatible mode. (Go to advanced Settings - Enable 32-Bi
Applications = True)
Make sure you have the correct C++ dlls on your machine. It requires the following files to be installed in the windows/syswow63 folder: msvcp71.dll, msvcr71.dll
Make sure you include all the other Remedy dll's referenced by
BMC.ARSystem in a folder where your application will know to look
for it. It has about 16 references. You can put it in your bin
folder, or in our case we specify a private path in the web.config,
like so:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib"/>
I hope this helps someone else to get this working quicker.

Related

Can't use 32-bit VC++ 2015 on Windows 7 unpatched

I have spent an incredible amount of time getting our product to run properly on customers' machines after we moved to Visual Studio 2015, and I still have one problem left to solve. The problem is that I can't get any of the C++ 2015 redistributables installers to work on 32-bit Windows 7 when it hasn't been patched (Windows Update).
The full story:
We upgraded all projects in the solution from VS 2013 to VS2015 and .NET 4.5.2, which also forced us to upgrade to "Microsoft Visual C++ 2015 Redistributable (x86/64) - 14.0.23506/23026)". We've done this kind of upgrade many times before, from VS2010 and up, and it never failed before.
23506 (for short) are the DLLs that accompany VS2015. We always found it easier to just XCOPY the DLLs into our installation folder. For some reason that doesn't work with the DLLs from VS2015 (23506). The program can't find them even when placed in the same folder as the executables. Why not?
Then I ran vcredist_xXX.exe that accompany VS2015, and the program runs fine.
But I want to XCOPY, so I discovered the download of 23026 from Microsoft, but there are no DLLs in there - only vc_redist.xXX.exe. Still, I copied the DLLs from somewhere in Windows - the paths to each DLL is listed in the registry. By the way, there are two extra DLLs installed that are not present in the folders in VS2015. "mfc140.dll" and "mfcm140.dll". Why?
But XCOPYing 23026 didn't work either, not even with the two extra DLLs. Running vc_redist.xXX.exe from 23026 worked fine.
Ok, problem solved, I thought. Using vc_redist.xXX.exe instead of XCOPYing. But no.
The final problem is that vc_redist.x86.exe (from 23026) and vcredist_x86.exe (from 23506) both fail when run on a 32-bit Windows 7 machine that hasn't been patched (Windows Update) at all after installation. For reasons I won't go into, that's the kind of machines we have to install our product on - unpatched 32-bit Windows 7 - no way around it. (The problem maybe exists on 64-bit unpatched Windows also, but I haven't got the time to find out.)
How do I get around this?
I am trying to link the C++ runtime statically and drop the DLLs alltogether, but it seems impossible when you have native C++ with C++ wrappers in a .NET project. This issue has already been reported by others, so no need to go into it here.
I have tried searching for DLLs to download, or a way to extract DLLs from the installer. Anyway, as mentioned above, I already tried just copying them from somewhere below C:\Windows. Doesn't work, so I doubt I can get some DLLs that will work. But again, why? If somebody can help me figure out this, it could be the perfect solution for our problem.
I have been thinking about finding the exact Windows patch(es) needed to get that installer - vc_redist.x86.exe - to work on those crappy machines. If it's just one or a handful of KBs that doesn't destabilize these machines, that would perhaps be acceptable.
A possibility that definitely should work is to downgrade the C++ projects to VS2013, which doesn't have this problem. I am really fed up of us always having to keep two versions of Visual Studio on our developer machines as a workaround for some silly problem, but if there's no other way, then so be it, even in 2016.
Found a quick and simple workaround. Turns out we only need to change the setting "Platform Toolset" to "Visual Studio 2013 (v120)" in all the C++ projects, in order to build with the good old DLLs that still work with XCOPY deployment. I was under the impression this setting would not go together with .NET 4.5.2, which we need, but it does. VS2013 will have to be installed along with VS2015, but we can live with that.
As stated, this is a workaround. It doesn't solve the actual problem stated in the title. But since I actually asked for a way around the problem, I'll close the issue with this answer.
As for the actual problem, if anyone is interested: I found some blog entries on the Visual C++ Team Blog - "Introducing the Universal CRT" and "The Great C Runtime (CRT) Refactoring". Where that leads, I'm not sure.
I was able to get this resolved on my local PC by following the updated step 6 on that article: https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/
Once you copy the 20 or so DLLS folder it still didn't work for me, I had to grab the ucrtbase.dll and ucrtbased.dll along with all the usual 140 (mfc, mfcm,vcruntime, msvcp) from my SysWOW64 folder and finally i'm able to launch this on a windows 7 pc without requiring to install any patches!

Using the right version of an assembly in this case MSHTML in my project and for deployment

In my VS2012 project with Internet Explorer 10 installed if I add a reference by going to the COM references and choose MSHTML then it gives me the version that is installed in the GAC which is an old 7.0.3300.0. If I actually look in system32 or sysWOW64 then the .dll tlb version is a much much newer version.
How should I develop against the newer version?
If I understand it correctly mshtml is installed with Internet Explorer so if my deployment machines have IE10 then I should have no problems right?
Can anyone guess why the GAC has the old version in it? I have just check 2 other Win 7 installs and it is the same. GAC is 7.0.3300.0 but elsewhere it matches the IE version.
EDIT: The other Win 7 machines all have VS installed. I just looked on another Win 7 and there is nothing in the GAC. Is VS2012 installing this in the GAC?
Update after Comment
It appears that there are a few questions about this. this reference from the comment also this question which Hans was also involved in. I also found this forum thread as well on the topic.
I still down know what I should be doing, but I can certainly simply follow like a sheep the instructions. I suppose I need to create a PIA that will allow me to call the newer methods (This fixes VS), but understand that if this code is used on a PC that does not have the compatible MSHTML / IE version then it will crash. (Same as the Office PIA and if you call for example an office 2013 method that does not exist on an Office 2010 installation.).
In my question I have linked to what are probably seen as the more correct answers to this issue.
If someone is looking for a quick and dirty solution then use late binding. I will explain specifically in my case what this means.
Dim div as HTMLDivElement
'make div something
div.getElementsByClassName 'this was not working!!!
This would not compile as the reference that Visual Studio is using is an old version.
So instead of follow the above because I only needed this a couple of times I changed the code to this.
Dim div as Object
'make div something
div.getElementsByClassName
Now Visual Studio will not have a problem with it. The problem you do face is that the final end user must have at lease a version of MSHTML (which is installed with Internet Explorer) that has this method or higher.
I hope this helps people who are still trying to work out what PIA's are and how they work in Visual Studio and MS environments.

j# from .net 4.0 application for zip files [duplicate]

I tried to convert a project that relies on the vjs runtime to vs2010, but it errors out when trying to run.
It's giving the error that "Could not load file or assembly 'vjslib' or one of its dependencies. An attempt was made to load a program with an incorrect format."
I reinstalled the vjs runtime, but it didn't seem to help.
Is there any way to get get .net 4 to work with this?
Very simple solution - Calling J# code from .NET 4.0
You take control and load it first supplying an explicit path. Then next time it's needed, it already knows the path (or it's already loaded in the AppDomain).
You will need to use LoadLibrary function, so import the pinvoke reference:
[DllImport("kernel32", SetLastError = true)]
static extern IntPtr LoadLibrary(string lpFileName);
The on load (either Main function in Console/WinForms or in Global.asax Application_Start):
if (Environment.Version.Major >= 4)
{
string folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), #"..\Microsoft.NET\Framework\v2.0.50727");
folder = Path.GetFullPath(folder);
LoadLibrary(Path.Combine(folder, "vjsnativ.dll"));
}
I have downloaded Microsoft Visual J# Version 2.0 Redistributable Package from http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4712 and installed it.The issue is resolved.
I got this to work by copying C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vjsnativ.dll (for 64 bit Microsoft.NET\Framework64\v2.0.50727\vjsnativ.dll) to my application's debug/release directory.
I suspect Microsoft will need to release another j# redistributable package to work with .net 4.0. Meanwhile, this work-around does a fine job.
The only way I could get it to work was to copy the C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vjsnativ.dll to the C:\Windows\Microsoft.NET\Framework\v4.0.30319 folder. See http://community.microfocus.com/borland/managetrack/starteam/w/knowledge_base/17108.error-unable-to-load-dll-vjsnativ-the-specified-module-could-not-be-found-exception-from-hresult-0x8007007e.aspx
To add to the existing answers, I found that the solutions didn't work for me.
First thing I did was to repair the Microsoft Visual J# 2.0 Redistributable Package -SE (x64) using Windows Control Panel (Just right click and click repair). This was in case I did any damage in my previous attempts to fix the problem.
I had already implemented the solution provided by David Thielen.
1 Extra step closed the deal for me (solved the problem):
Copy "vjscor.dll", "vjslib.dll" and "vjsnativ.dll" from C:\Windows\Microsoft.NET\Framework64\v2.0.50727 To C:\Windows\Microsoft.NET\Framework\v2.0.50727
So basically the Microsoft package placed the correct dlls into the 64-bit .NET framework and I had to manually move them into the 32-bit folder which is then copy-pasted into my solution folder by David Thielen's solution (above).

Deployment a web-site on IIS from another program

I developed a web-site on ASP.NET 3.5 SP1 platform. And additional I have 2 win services. My task is to build install package. I decided that Visual Studio install projects are not met my requirements. I design my own installer for this project, because I need to resolve many question and problem in install process. My problem: I need to deploy web-site into IIS, but I don't know how to do it easy. I found Microsoft tool as Web Deployment Tool, but I didn't find any documentation. And must I include this tool into my installer for deployment at destination customer? Another side I found SDC Tasks Library and it looks like a solution for me. But I saw many topics where people had problems and because the project was dead anybody couldn't help them. I know it is a long story... My question: how can I deploy the web-site from another program (I know that IIS versions have some differences and it is another headache), set a virtual directory, application pool (very important), a type of authentification and so forth ???
Thanks.
Use Wix for installers.
This article seems to cover what you want:
Automating Web deployment on IIS with WIX.

How do we setup a SharePoint dev environment with VSeWSS 1.2 and Source Safe?

Does anyone use the MS SharePoint Solution Generator and VSeWSS 1.2 in a multi-developer environment with source safe? We are having issues re-deploying (because it doesn't really upgrade the solution with stsadm). It keeps saying the same feature is already installed - which it is, but it should retract the feature and re-install it - which it doesn't on some machines. Something is messed up with the feature's GUID but we can't find where that might be. One dev will be able to deploy and re-deploy but then the next dev won't. Where does VSeWSS 1.2 change the GUIDs? ARG!!!
We see the nice deployment targets (upgrade, etc) in STSDev but we're reluctant to use STSDev or the other codeplex tools because they are not supported by Microsoft. We have Visual Studio 2005 but not the money to upgrade to VS 2008 to get VSeWSS 1.3 - bummer.
---UPDATE----
I think we found a bug in VSeWSS that other's have commented on: Editing the projects properties resets some feature GUIDs.
It might also be a problem with the scope of the install. How do we get a site definition to install to the FARM scope in VSeWSS 1.2?
Don't worry too much about supported by Microsoft too much. While it is a consideration, the end result of MS SharePoint Solution Generator (terrible) and VSeWSS 1.2 are still SharePoint solutions and all solutions need to contain the same xml.
Could the deployment targets for STSDev be modified to work with your VSeWSS solution? After all, the deployment targets here are just working with STSAdm and a solution file.
In order to avoid the usual "works on my machine" you should set up a build and deployment system. If you are using virtual server or ESX server it should be fairly simply, and cheap as well. You should be able to use open source software all the way if you have more man power then money.
VSeWSS 1.2 and 1.3 store the feature GUID's in files in the /PKG directory of your Visual Studio solution. If you delete these files, or check our project into Source Control without these files and check them out on another machine, you will lose your GUIDs. Sure, VSeWSS will recreate the missing files for you, but it will do so with new GUIDs and new feature names.
A common requirement is to add the /PKG directory to your Visual Studio 2008 project and get it into source control.
You can read more about the files in the /PKG directory in the Release Notes for VSeWSS 1.3 here.
PS: We did some improvements to the Solution Generator in VSeWSS 1.3, but it wont generate a 100% perfect solution for you.

Resources