I recently decided to try out visual studio online to automate my build. The build result should be some binaries and a wix created installer. Locally this works, however on visual studio online this results to errors:
light.exe: Error executing ICE action 'ICE01'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wix.sourceforge.net/faq.html#Error217 for details and how to solve this problem. The following string format was not expected by the external UI message logger: "The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance.".
[..]
light.exe: An unexpected Win32 exception with error code 0x643 occurred: Action - 'ICE09' Fatal error during installation
The only solution I know to solve this is to give the build server administrator rights. In this case this is not possible.
Does anyone know if it is possible to use Wix on Visual Studio Online? If yes, what do I need to change?
The other only alternative I know of is to disable ICE validations during build:
<PropertyGroup>
<SuppressValidation>true</SuppressValidation>
</PropertyGroup>
Running an application from Visual Studio 2012 on 64-bit computers, displays the following error message:
Retrieving the COM class factory for component with CLSID {F2D4F4E5-EEA1-46FF-A83B-A270C92DAE4B} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
I am using Inventor packandgo dll library in visualstudio.
Anyone know what is the error?
My problem and the solution
I have a 32 bit third party dll which I have installed in 2008 R2 machine which is 64 bit.
I have a wcf service created in .net 4.5 framework which calls the 32 bit third party dll for process. Now I have build property set to target 'any' cpu and deployed it to the 64 bit machine.
When Ii tried to invoke the wcf service got error "80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG"
Now Ii used ProcMon.exe to trace the com registry issue and identified that the process is looking for the registry entry at HKLM\CLSID and HKCR\CLSID where there is no entry.
Came to know that Microsoft will not register the 32 bit com components to the paths HKLM\CLSID, HKCR\CLSID in 64 bit machine rather it places the entry in HKLM\Wow6432Node\CLSID and HKCR\Wow6432Node\CLSID paths.
Now the conflict is 64 bit process trying to invoke 32 bit process in 64 bit machine which will look for the registry entry in HKLM\CLSID, HKCR\CLSID. The solution is we have to force the 64 bit process to look at the registry entry at HKLM\Wow6432Node\CLSID and HKCR\Wow6432Node\CLSID.
This can be achieved by configuring the wcf service project properties to target to 'X86' machine instead of 'Any'.
After deploying the 'X86' version to the 2008 R2 server got the issue "System.BadImageFormatException: Could not load file or assembly"
Solution to this badimageformatexception is setting the 'Enable32bitApplications' to 'True' in IIS Apppool properties for the right apppool.
The problem is that the DLL is registered on the 32 bit version of the windows registry, and the application is using the 64 bit version.
Solution: Go into the Project Properties, Compile tab and click "Advanced Compile Options...". Change "Target CPU" to x86, click OK, save and try again.
Source:
http://www.theogray.com/blog/2009/10/comexception-regdbeclassnotreg-on-64-bit-windows
Has worked for me with an VB 6 COM DLL invoked from a .Net 4 Winforms application
Somewhere in the code you are using, there is a call to the Win32 API, CoCreateInstance, to dynamically load a DLL and instantiate an object from it.
The mapping between the component ID and the DLL that is capable of instantiating that object is usually found in HEKY_CLASSES_ROOT\CLSID in the registry. To discuss this further would be to explain a lot about COM in Windows. But the error indicates that the COM guid is not present in the registry.
I don't much about what the PackAndGo DLL is (an Autodesk component), but I suspect you simply need to "install" that component or the software package it came with through the designated installer to have that DLL and appropriate COM registry keys on your computer you are trying to run your code on. (i.e. go run setup.exe for this product).
In other words, I think you need to install "Pack and Go" on this computer instead of just copying the DLL to the target machine.
Also, make sure you decide to build your code appropriate as 32-bit vs. 64-bit depending on the which build flavor (32 or 64 bit) of Pack And Go you install.
I had the same problem. I tried lot of ways but at last solution was simple.
Solution:
Open IIS, In Application Pools, right click on the .net framework that is being used.
Go to settings and change 'Enable 32-Bit Applications' to 'True'.
In 64 bit windows machines the COM components need to register itself in HKEY_CLASSES_ROOT\CLSID (64 bit component) OR HKEY_CLASSES_ROOT\Wow6432Node\CLSID (32 bit component) . If your application is a 32 bit application running on 64-bit machine the COM library would typically look for the GUID under Wow64 node and if your application is a 64 bit application, the COM library would try to load from HKEY_CLASSES_ROOT\CLSID. Make sure you are targeting the correct platform and ensure you have installed the correct version of library(32/64 bit).
Long solved I'm sure but this might help some other poor soul.
This error can ocurre if the DLL you are deploying in the install package is not the same as the DLL you are referencing (these will have different IDs)
Sounds obvious but can easily happen if you make a small change to the dll and have previously installed the app on your own machine which reregisters the dll.
I had run into the same problem. I added reference of Microsoft.Office.Interop.Excel COM component's dll but Office was not installed on my system it wont give compile time error. I moved my application to another system and ran it..it worked successfully.
So, I can say in my case it was the system environment which was causing this issue.
I had this problem and I solved it when I understood that it was looking for the Windows Registry specified in the brackets.
Since the error was happening only in one computer, what I had to do was export the registry from the computer that it was working and install it on the computer that was missing it.
I was getting the below error in my 32 bit application.
Error: Retrieving the COM class factory for component with CLSID
{4911BB26-11EE-4182-B66C-64DF2FA6502D} failed due to the following
error: 80040154 Class not registered (Exception from HRESULT:
0x80040154 (REGDB_E_CLASSNOTREG)).
And on setting the "Enable32bitApplications" to true in defaultapplicationpool in IIS worked for me.
For me, I had to install Microsoft Access Database Engine 2010 Redistributable and restart my computer.
This happened to me when I startup eclipse for a workspace and not other workspaces. In that workspace I had a *.ts file opened with "JS editor". Error occurred in spite of having correct file association in Preferences. Other *.ts file opened without error. To get around this, in "Open Resource" (ctrl-shift-r), I used the "Open With" button and selected "JS Editor", and the file opened without problem. After that eclipse knows the editor to use for that file. I solved the problem for one particular file type, but solution probably applies to all file types. Hope this helps someone. Thanks for reading
Check if the MS Office and MS Excel is installed on that server.
I distributed a .net COM to client machines. All machines work except one XP machine.
It got 0x80070002 message when try to create an object from the COM component.
The machine has an older version of the same component which works ok.
For the new version, I just generate a new set of GUIDs and add some new function to the program.
I have been trying to uninstall both versions and only install the new version. However, I still got the problem.
Is anybody know what's possible reason?
Thanks
Looks like that error code translates to 'Cannot find the specified file'. I would check that any and all dependencies/references required by your dll are installed on the target machine, including the correct version of the .Net framework that you need.
I Have a 3rd Party component "ArchestrA.MxAccess.dll" (which is build on x86 by corgflags) with 2 type libraries and having development PC (XP SP2 32-bit) using Visual Studio 2008.
when I creating instance of a Class in the code, it throws COMException - 80040154.
Following Solutions I have tried:
RegSVR32 the DLL, but it can't be registered. as "Entry point not found".
Regtlib type libraries, succeed
regasm the DLL, succeed.
Compiler mode is on x86.
CLSID which is in error have entry in registry: HKCR\CLSID\ and pointing to
this DLL.
Please help. i am searching solution since 3 days.
Dev.
regasm with codebase makes entry with codebase and pointing to file name,It is succeed. have also registered dll using GACUtill, it is succeed.
but Same Error is coming.
my ProcMon can not found entries in
"HKCR\CLSID\{c30...}\"
<TreatAs>, <InprocServerX86>, <LocalServer32>, <APPID>
and same as in
"HKCU\Software\Classes\CLSID\{C30..}\".
Only Available Entry is
1. {CLSID}\InProcServer\Default,Assembly,Class,codebase,RuntimeVersion
2. {CLSID}\InProcServer\2.0.0.0\Default,Assembly,Class,codebase,RuntimeVersion
runtimeVersion = V1.1.4322
is it means I need to install 1.1 framework?
Answers of Tech support from WonderWare
is
There is need of deploying "System Platform".
so it is basic authentication(checking deployment of System Platform and its license) before initializing COM.
registering with GACUtil is helpful. COM is not registering itself sometimes.
Thanks Again.
I installed VB6 onto my machine.
Whenever I open VB6 editor, it is asking for a "Dell Resource" CD
When I open VB6 Project. It gives me errors saying
SVGControl.dll could not be loaded
Googling tells that Adobe SVG viewer needs to be present. But installing that does not solve the problem. This dll is present in System32, but when I register, it throws a LoadError.
Another error saying crystl32.dll could not be found. I installed Crystl32.exe from VB installer. But that was not successful. It shows error like Ordinal 1132 could not be located in DLL CRPE32.dll. Also, upon copying this dll to system32 and registering, it throws LoadError.
Any ideas on how to solve these errors?
What OS are you using? If Vista/Win7 uninstall and rerun the install "As Administrator"
Possible fix for the crystl32 error
I installed VB6 on a machine without .NET. The Crystl32.exe installation was successful. Now the error 1 is solved.
However when i open a VB 6 project I get the following errors:
1. SVGControl cannot be loaded
2. Crst32.ocx cannot be loaded