VFP dll not searching program files for vpf9r.dll - installshield

When I try to instantiate a VFP COM (OlePublic) DLL from my .NET web app running in IIS on Windows server 2016 I get:
Retrieving the COM class factory for component with CLSID {A55C4127-DDCB-4E5F-B69C-A7EAC83A83DC} failed due to the following error: 80004005 Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL)).
I was able to track it down (using Simon's comment) to it not being able to find vfp9r.dll:
Those files got installed w/ my InstallShield package under C:\Program Files (x86)\Common Files\Microsoft Shared\VFP:
vfp9r.dll
VFP9RENU.dll
vfp9t.dll
Why isn't "it" searching that dir? I got one server it is finding them under program files and another that isn't. How does that magic work?
update
if I install VFP 9, it will search that dir & successfully load it. So what is the VFP 9 install doing to my machine to tell "it" to search that dir not just the current dir & \SysWow64? 🤔

workaround
import these registry keys:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VisualFoxProRuntimeMT.9\Shell\Open\Command]
#="C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\VFP\\vfp9t.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VisualFoxProRuntime.9\Shell\Open\Command]
#="C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\VFP\\vfp9r.dll"
(save the above 'script' as a .reg file and double click it to import it)
how I figured this out:
Hyper-V checkpoints so I could quickly go back and forth from a working to a non-working vm along w/ resetting after I did some test to find the minimal workaround
Search & export registry key w/ vfp9r.dll or vfp9t.dll
Compare exports via Notepad++ Compare Plus Plugin
The diff for vfp9t.dll was smaller so that was helpful. I grabbed the first key and that worked. Then I searched for the same-ish path for the vfp9r.dll export and grabbed that key.

Related

Installshield - The files for installation requirement could not be found. The installation will now stop

I am using InstallShield to build an installer to install some custom prerequisites on my client computers. But everytime I try to run the installer, I get:
The files for installation requirement Crystal Runtime x86 could not be found. The installation will now stop. This is probably due to a failed, or canceled download.
I have told the prereq where the File sits on my local development machine, and it seems like InstallSheild takes this file, and copies it to the ISSetupPrerequisites folder in the same directory as the .exe file it generates. I can confirm my file exists in the ISSetupPrerequisites folder.
Is there something else I need to do to tell the installer where my .msi installer is for my prerequisite?
My guess is that you've copied the installer (setup.exe or something similar) to the PC that you're installing on but not the ISSetupPrerequisites folder. You need to do this because you haven't changed the setting that puts the prerequisites (Crystal Runtime x86 in your case) inside the installer itself.
To enable this, go to your release's "Setup.exe" tab and change the value of the property called "InstallShield Prerequisites Location" from "Copy From Source Media" to "Extract From Setup.exe".
You should verify the checksum and filesize attributes in the redistributable's pre-requisite file. If these don't match the local/downloaded file you'll see that error
(Example files node for MSFT VS 2010 Tools for Office Runtime)
<files>
<file LocalFile="<ISProductFolder>\SetupPrerequisites\VSTOR\vstor_redist.exe" URL="http://download.microsoft.com/download/B/5/1/B51D2F9E-1432-4B76-8248-F47316BB8EE0/vstor_redist.exe" CheckSum="a1b5c8fb246a9d0d66f12d3b6f5e471d" FileSize=" 0,40051808"></file>
</files>
Make sure the CheckSum value inside the .prq file is exactly the same as the MD5 checksum of the package copies on the web url and under < ISProductFolder >\SetupPrerequisites
You can calculate MD5 on windows using the command
certutil.exe -hashfile myPackage.exe MD5

Installing Emacs Emulation keybindings -- Invalid VSIX package

I'm trying to install the extension for Visual Studio 2012 that allows emacs key-bindings.
I'm following through the steps here:
Emacs Keybindings in Visual Studio 2012 or 2013
I'm up to step 5:
Run the vsik file as administrator. This is required so the extension
can write Emacs.vsk into the program files folder. I wasn't sure the
best way to do this so I ran a command prompt as admin and then
executed start emacsemulations.vsik from the prompt.
So, running emacsemulations.vsix from an administrator command prompt,
I get the following error "This VSIX package is invalid because it does not contain the file extension.vsixmanifest at the root."
I'm not changing any of the file names inside the package.
I'm thinking this may have something to do with how windows zips up the file -- I'm able to recreate the problem simply by unzipping and rezipping the EmacsEmulation.vsix file without changing the contents of the vsix package.
If anyone has any suggestions on how to fix, or even better, the actual updated vsix file itself, I'd be very grateful!
The issue you have relies on the way you are zipping your file, what you should do is zip all files inside the folder you created (in this case, "EmacsEmulations") when you unzipped it.
Step into the EmacsEmulations folder.
Select all files.
Add to .zip
Rename the .zip output to EmacsEmulations.vsix
I'm trying to get this extension to work too, so good luck!

How to update TFS workspace after computer name changes?

I renamed my computer name, and now my TFS workspace is broken in Visual Studio 2012.
When I type:
tf workspaces /computer:ABOTONJIC-PC /owner:* /format:detailed
Workspace : ABOTONJIC-PC
Owner : wrongowner#test.com
Computer : ABOTONJIC-PC
Comment :
Collection : netuse.visualstudio.com\DefaultCollection
Permissions: Private
Location : Local
File Time : Current
But I need to have :
Owner : realowner#test.com
Computer : NEW-PC
Then I try:
tf workspaces /updateComputerName:ABOTONJIC-PC /collection:netuse.visualstudio.com/DefaultCollection
No workspace matching *;wrongowner#test.com on computer NEW-PC found in Team Foundation Server netuse.visualstudio.com/DefaultCollection.
So my question are :
How to update computer name in my workspace?
Why TFS still shows "wrongowner#test.com" in workspace although there is new email registered as "realowner#test.com"?
Install Team Foundation Sidekicks. It's free.
Open the Workspace Sidekick, click Search, and select your workspace from the list.
Click the blue computer icon to Update Workspace Computer Name and you're done.
I installed Sidekicks. It did not work for this issue, but this did:
C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE>tf workspaces /updateComputerName:OldComputerName /s:"https://tfsServerName"
I had the same issue, also a VisualStudio.com account.
I've tried what the prompt told me :
Like so :
tf workspaces /updateComputerName:MyOldComputerName
but I got back :
The /collection option must be specified whenever /updateComputerName
or /updateUserName is specified.
In order to get the collection name I ran :
tf workspaces
which listed my collections and I got the name of my collection (...myusername.visualstudio.com...)
Then I ran :
tf workspaces /collection:http://myusername.visualstudio.com /updateComputerName:MyOldComputerName
Didn't work as I got this:
TF31002: Unable to connect to this Team Foundation Server:
http://myusername.visuals tudio.com/defaultcollection. Team Foundation
Server Url: http://myusername.visualstudio.com/defaultcollection.
Possible reasons for failure include:
- The name, port number, or protocol for the Team Foundation Server is incorrect
- The Team Foundation Server is offline.
- The password has expired or is incorrect.
Technical information (for administrator): The remote server returned
an error: (404) Not Found.
Then I noticed that I've typed http instead of https, corrected, retried and it worked!
In
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>
run in CMD as admin this command
tf workspaces /collection:https://SERVER_NAME.visualstudio.com/DefaultCollection /updateComputerName:OLD_COMPUTER_NAME
To get this to work in Visual Studio 2017 use the following (new location)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe workspaces /collection:https://youraccountnamehere.visualstudio.com /updateComputerName:OLD-COMPUTERNAME
Hope this saves someone some time!
Look at this link
Vaccano said :
This command did the trick:
tf workspaces /updateComputerName:MyOldComputerName
/s:"http://MyServer:8080/tfs/MyCollection"
It had to be run from the computer I wanted to assign the workspace to (that is how it gets the new computer name.
>
tf workspaces /updateComputerName:REPLCATEOLDCOMPUTERNAMEHERE /collection:REPLACETFSURL
example:
tf workspaces /updateComputerName:DESKTOP-42CLO97 /collection:https://testuserxx.visualstudio.com
VS2017
Open Command prompt and type as shown in below
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
and type the following code with your credential
tf workspaces /updateComputerName:OldComputerName
/s:"https://tfsServerName"
In CMD prompt
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>tf
workspaces
/updateComputerName:OldComputerName/s:"https://tfsServerName"
You can add new workspace then use vs 2017 delete your previous workspace:
What worked for me was typing
tf workspaces /updateComputerName:MyOldComputerName /collection:"anything".visualstudios.com/DefaultCollection/
Open the visual studio command prompt and type the following command
tf workspaces /updateComputerName:oldcomputername /s:http://tfservername:port#/tfs
for example
tf workspaces /updateComputerName:abc-PC /s:http://mytfsserver:8080/tfs
You can run the following command before and after running the above command, this is just to check the workspaces information on your computer.
Remember: run all these commands on client computer (which is renamed) and not on the computer where TFS server is installed.
If user name is also changed then run the following command
tf workspaces /updateUserName:oldUserName /s:http://mytfsserver:8080/tfs
Hope it will help.

IIS express from command line

I've installed the IIS Express 7.5 Beta 3 and tried it on multiple computers (Windows 7, Windows Server 2008 R2 and Windows XP) and on each one of them I get the following error when running
iisexpress /path:e:\onlineinvoices\
This is the error. It seems it can't find the applicationhost.config file. I've searched for this file myself too and found it in the AppServer folder of IISExpress installation folder.
Copied template config file 'C:\Program Files (x86)\IIS Express\AppServer\applicationhost.config' to 'C:\Users\marko\AppData\Local\Temp\iisexpress\applicationhost201115151422496.config'
Temp configuration file settings error.
The system cannot find the file specified.
The instructions here are pretty weird especially the ones that deal with configuration file. As a matter of fact it says that the applicationhost.config should exist in Users Documents folder but there's no trace of it there.
I had the same problem.
It started working after I ran IIS Express by double clicking on the C:\Program Files\IIS Express\iisexpress.exe.
After that it worked when I ran it from the command line.
Yes, launching iisexpress.exe one time should fix the problem. This is a bug that we will fix at the earliest opportunity. Using the /path option uses a temporary configuration file under the temp directory, which is setup to include the specified app. Without /path, iisexpress.exe uses the default applicationhost.config under documents and will create one if it doesn't exist.
Hope this helps.

Allegro SCAN_DEPEND problems

I am trying to build a project with the allegro-msvc80-4.2.2 pre-built package. I'm using Visual C++ Express Edition 2005 and have added the input library alld.lib and am including allegro.h asp per these instructions:
http://wiki.allegro.cc/index.php?title=Visual_C%2B%2B_Express_2005
When I compile, I get the fatal error:
C1083: Cannot open include file:
'pc.h': No such file or directory
This is because the allegro platform header file "aldjgpp.h" tries to include the nonexistent file (as well as others such as dpmi.h and unistd.h) if SCAN_DEPEND is undefined.
If I try defining SCAN_DEPEND, I get an error from alconfig.h saying "platform not supported."
That error indicates that you are not using the proper header files. The header files that come with the pre-built files are set appropriately.
You should have an include/allegro/platform/alplatf.h file. For MSVC that should have one line:
#define ALLEGRO_MSVC
The best solution is to delete all instance of Allegro source from your computer, and redownload the file. Be sure to check your compiler's directories for stray headers. The following command, as run from the cmd.exe prompt, will help you find any files.
dir /s c:\allegro.h
If you continue to use the old header files, you may run across other problems.
Also, you may want to consider using Allegro 4.2.3, as it is the latest version of the 4.2 series. (Available at http://www.allegro.cc/files/.)

Resources