VB.Net Transferring A Windows Form App Onto A USB Stick - winforms

I am just wondering how do you transfer a windows form application onto a flash drive because every time I have tried after its transferred I click to open it and an error message displays saying:
"Cannot find the file 'F:\Vending Machine.vb.'
I need to be able to transfer it so when it opens I am able to edit the code and the appearance of the application as I would if I were to just open a new windows form application now.
Thank you
Marcus.

You will need to transfer the entire project/solution to the USB.
Transfering the already compiled .exe should open the latest build of your application. Transferring only a portion of the solution folder and then trying to open the .sln will cause errors on the files you have left out.
Clear your FlashDrive
Copy the entire folder(not the contents) to your flashdrive (C:\Users\Marcus's MPC\Documents\Visual Studio 2010\Projects\Vending Machine)
Attempt to open the .sln
Based on your additional comments it seems you are not moving all of the files the solution needs. If you have files stored in other locations (like My Document) those will need to be reconfigured to work with the solution or you will have to mimic the environment.
I would recommend reconfiguring the project to consolidate any stray files you have.

Related

My installed WPF app is crashing while trying to create a file

I have a problem with my WPF application (a simple clicker game). I've just made a deployment/created a setup project using Microsoft Visual Studio Installer Projects extension for Visual Studio. Everything seemed to work fine, setup works good (tested on other computer) and furthermore the installed application almost works correctly. The only exception is a button calling function which is creating a new txt (something like a draft of a "save" file) file in a folder where the application is installed. Clicking this button cause instant crash of the whole application. Nothing else happens, no error message, the app just turns off.
I assume that the problem lies in access rights to the folder/administrator rights.
I've added txt file with the same name in the application folder using "File System" window in setup project, deployed and installed again. Even when the file exists the problem happend again (probably because of access rights when trying to override file content).
It's may be important that everything worked while running app through VS, also using .exe works fine on any computer. The problem is only with application installed using setup.
I'm not sure where the problem is so it's hard to show some code, to be honest i'm not even sure if it's a problem with code, maybe it can be solved with setting some setup project properties?
I would like to store some data locally between two sessions, i've choosed txt file because it's light and simple even if it's not the most elegant way.
I expect that installed application will be able to create and override txt file in it's folder.
P.S. if you need any code, screenshots or information about my setup please let me know in comments section, I will provide what's necessary
At the moment you install your program you're having administrator-rights. So the folder where your application is, also was created with administrator-rigths.
If you want to store data to this folder, you'll have to run your application as administrator. (not the best idea)
Otherwise you can change your code to write your file at runtime to a different location where you don't need administrator-rights.
For example:
string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
will give you: "C:\Users\MyUserName\AppData\Local"
string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
will give you: "C:\Users\MyUserName\AppData\Roaming"
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
will give you: "C:\Users\MyUserName\Documents"
And some error-handling around the saving of the file would be very nice and helpful ;)
Thank you everyone for solution and knowledge, the problem was as I assumed (access to the path denied).
I was using this code to create a path:
Directory.GetCurrentDirectory() + "\\SyntyhCitySave.txt";
Creating a file in a special directory instead of application folder works, that's the solution for my problem:
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\SyntyhCitySave.txt";
Tomtom answer marked as accepted.

VS2012 crash when user control attempts to access file

I am building a windows forms application (C#). I have created a reasonably complex custom user control, works great. Problem is, when I add this control to my main form it crashes VS some time later.
After looking around about this I found the suggestion that I use two instances of VS, one to debug the other - this quickly narrowed in on the problem:
The custom user control contains a 30 second timer which saves some data to an XML file when it completes. As the program is not actually running, it is attempting to save the file to C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE , where it does not have permission (thus the crash).
This is an unusual problem, as when the application is running normally it will not be a problem (the file is set to save in the same directory as the executable). Is there a way to prevent the control from running while in design mode?

Does Visual Studio 2012 Save Files That Fool Dropbox?

I am using VS2012 for a new Windows Store app. I have two machines, a Win8 PC and a MacBook Pro, both using the same DropBox account to keep work files synced. Here is the problem. I currently work solely on the PC, using VS2012. Yet I continually get a popup dialog message that the file I have been editing and testing with has been modified by another program, do I want to reload it?
I decline to reload it, and then go to a separate text editing program to compare the two files.
Here is what I find.The file labeled "home.js" still contains the original contents from when I started my editing session. The file labeled "home (Dell1405's conflicted copy 2013-02-08).js" agrees with my latest updates. So it seems that DropBox has tried to sync the newer copy of the file, but is lead to believe that file is from another source, and so marks it a a conflicted copy.
So the "new" file that VS alerted me about is actually the latest copy that was saved when I ran my project in debug mode, and it agrees with the code shown in the VS edit window.
So my question is: While debugging, is VS saving my code file in some temporary area different than the disk location where I see it? And is this what is confusing DropBox (and me)? If so, how can I fix it?
I guess I could shut down DropBox on my PC before starting to work, but then I'd have to resort to sneaker-net to move edited images from my Mac to PC.

Database errors in Quantum Grid demos in Delphi XE Professional

Whenever I open one of the Quantum Grid demos in Delphi XE Pro (on Windows 7 32-bit), the following error is displayed for every table (I think) in the project:
error message http://www.tranglos.com/img/qgerror.png
The message is:
Network initialization failed.
File or directory does not exist.
File: C:\PDOXUSRS.NET
Permission denied.
Directory: C:\.
I understand permission issues writing to c:\, but the result is that while I can build and run the demo projects, no data is displayed, which makes the demos rather useless. And what kind of database writes its configuration to c:\ directory in the 21st century anyway? :) (Yes, I know very little about Paradox databases, but I won't ever be using one either. I just want to learn how to use the grid.)
Using BDE Administrator I've tried changing the Paradox "NET DIR" value to a folder with write permissions on the C drive. Result: now the database tables cannot find their data:
Path not found.
File: C:..\..\Data\GENRES.DB.
...and the unhelpfully truncated path gives no indication where the files are expected to be.
Is there a way to work around the problem so that the demos can load their sample data correctly?
Did you install the BDE correctly? It should use the DBDEMOS files. Do you see such an alias in the BDE administration utility? Can you open that database in one of the Delphi demos?
The BDE is not a XXI century database, it was developed twenty years ago and never upgraded lately. It's an obsolete tecnology, but because it comes still with every release of Delphi with a known database it is still often used in demos because nothing new has to be installed.
Anyway that file is not its configuration file. It's a sharing lock file to allow more than one user to use the database concurrently. Because it is a file based database without a central server, it has to use such kind of shared files. Usually its position is changed to a network share, but it defaults to C:\ for historical reasons.
Anyway it's not only the BDE still attempting to write in the prong directories. I still see a full bunch of applications attempting to write to C:\ (especially logs) or other read-only positions.
Using BDE Admin to change the location for PDOXUSRS.NET helped, but it wasn't sufficient. DevExpress did the right thing in specifying a relative folder for the data location, and the relative folder seems perfectly allright, but for some reason the DB can't find it.
Solution: under the \Demos\ folder find all the *.dfm files that contain the string
..\..\Data
and replace that string with the absolute path to the demos folder. That done, all the demos open correctly.
I know this message from our own applications. It has to do with security measures introduced with Windows Vista. The operating system trying to protect critical files denies access to them. There is a method how to bypass this mechanism without compromising security. Try to run your application in compatibility mode. When application is running in compatibility mode, read / write operations from / to system folders are redirected to "safe" directories located in C:\Users[Current User]\AppData\Local\VirtualStore.
More info on http://www.windowsecurity.com/articles/Protecting-System-Files-UAC-Virtualization-Part1.html.

Icons from remote files

I have started coding an FTP client application (for fun). I’m trying to represent remotely hosted files with icons. For example, let’s say I’m browsing the root folder of an FTP server (/) and want to display the Backup.zip file with the icon association from that client operating system. On some systems, this may be the windows compression icon and other operating systems this may be WinZip or WinRAR icons.
I have the client browsing local files with the SHGetFileInfo() function. This works great with files that are local, however, this function requires the physical file in order to retrieve the associated icon. So, this will not work with remotely hosted files. I have found some samples of loading icons given a file extension, and this is really where the question comes in... What would be the best strategy to get icons associated to remote files?
Go to the registry every time and look up extension to icon associations
Create 1 byte files with each extension and use the SHGetFileInfo() function for remote files (using local 1 byte files as association for remote files)
Other strategies???
What would a professional software company creating an FTP client do?
Thank you for your time.
-Jessy Houle
I suggest that you don't go to the registry every time: go if you need to, but if you've already been for a given filetype then remember/cache that result (within your program) and reuse it.
Use the procedure here from a previous Stack Overflow question on the same idea and uses the registry instead of an actual file.
How can I get the filetype icon that Windows Explorer shows?

Resources