WPF application doesn't run in another folder - c#

My OS is windows 10 and I have a WPF project (dot net 4.6.2 , visual studio community 2017) that runs in release and debug mode without any problem.
also i can run it from release or debug folder from my project folder.
but when i copy release or debug folder to any other place in my computer , my application runs and show wait cursor and nothing more.
my application doesn't need to any source from outside of my project.

I figured it was a problem to set the icon path when I set it for
System.Windows.Forms.NotifyIcon.
I created a folder with 'Content' name in my project And then put the icon file inside it.
in xaml , I set window icon "/Content/Icon.ico" and it worked.
for NotifyIcon i set Icon "../../Content/Icon.ico"
that it also worked but when I Copy Release folder to another dorectory it didn't work.
So I drag the icon file in Resources and I set the icon of NotifyIcon like this:
new Icon(Resources.AppIcon,40,40);
This error occurred because I'm confused about how to address the files in WPF.

Related

EXE file not getting compiled with required icon

I have a VSTO application that is developed as an add-in for Outlook using .NET. When I build the application (in Release or Debug mode), I get 2 files, one is <project_output>.MSI and the other is setup.exe file. My goal is to change the default icon of the setup.exe file.
I have tried changing it by opening the setup.exe file in Visual Studio and importing the icon, this seems to do the trick but I don't think it is a good solution as every time I build, I would have to do that.
I have tried this as well, where I specified the image file(.ico) in project properties.. This is not working. I tried ending the explorer.exe task and re-running it (it was mentioned in one of the answers in StackOverflow, and helped in clearing cache).
The requirement is the setup.exe file should have the icon that I set (in any way using visual studio) and not the default icon on building the project(in any mode).
image of output setup.exe
Thanks in advance.
You can change the Icon of Form in the Form Properties.
• You can also use the application Properties, Project > "Project Name" Properties > Application > Icon and Manifest ( Select the Icon that you want )
Once done, select the form and double click until you hava the Form_Load, under it type
this.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
for NotifyIcon type
NotifyIcon.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
You can also set the icon for other forms
Form2 frm2 = new Form2();
frm2.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);

Visual Studio Installer Project - shortcut icons not set

I've created a WinForm application with .NET 4.6.1 and C#. I'm using Visual Studio 2017, with latest fixes updated (up to 29-Sept-2018).
The application uses a custom icon, and it's correctly shown: exe file is displayed with the proper icon.
I've created an Installer Project using the "Microsoft Visual Studio 2017 Installer Projects" extension. The installer copies sets of files in different locations (under Program Files, under the user's App Data, etc), and the files are correctly copied. EXE files correctly display the custom icon I've set.
Now, here comes the problem.
I've set a shortcut on the desktop.
The shortcut is created and actually works, but the icon is wrong: the default windows icon is shown instead.
I've tried several solutions and read from several forums.
1- I've tried to "Create New Shortcut" from the File System view (Desktop folder), and then set the Icon from the Properties window.
2- I've tried to right-click the output exe and select "Create a shortcut to primary output", and then dragged the shortcut to the desktop folder.
3- I've tried to select the icon referencing directly the Application Output exe: the wizard allows me to select the correct icon, I select it and confirm.
4- I've tried to select the icon referencing the source ICO file: once again, the wizard allows me to select the correct icon, I select it and confirm.
Any solution I've tried, I ALWAYS obtain a shortcut displayed with the default icon and NOT with the custom icon.
Whatsmore, if I try to manually "Create a shortcut" by right-clicking on the EXE, in window's File Explorer, the shortcut is created using the correct custom icon! So, it's strange that Visual Studio (or the installer) is not able to do the same thing during the installation.
Do you have any idea of the cause of the problem, and how to fix it?
Thanks!
I had the same issue, and tried every combination the OP also tried.
In the end my issue was down to the fact my .ICO file did not have the correctly sized images for the desktop shortcut. (It would have been nice if Visual Studio had told me that!!!!)
Oddly like the OP generating a shortcut by hand did make the icon appear, so I find the above a bit strange!
Anyway I was generating my .ICO file using GIMP to convert a PNG. I had clearly got this stage wrong.
I'd suggest trying a different .ICO file first and see if that is the cause.
It was for me and I solved it by using the following site:
http://icoconvert.com/
I then ticked the relevant boxes for the sizes, used this new .ICO file and hey presto it all works
I'd the same problem.
I had fix it simply select the main ouput (.exe) and not the .ico in the shortcut property icon option. I suppose installer not recognize the .ico file correctly.
I encountered the same problem. Just ensure you set the icon for the project to the same icon file as for the desktop shortcut and user program shortcut.
The icon file must follow the dimensions of Windows 7.
You can use http://icoconvert.com/ for changing the icon dimensions.
I had the same problem, using VS 2019 with the Visual Studio Installer extension.
I checked my icon had the correct dimensions (16x16, 32x32 and 48x48 within the ICO file), so it wasn't this.
Also, I had previously installed the app and the icon had worked fine. I'm using the "replace previous version", but I'm not sure if this is cause.
I double-checked the installers Outputs, and yes, the .ico was being copied/included... however I found that the defined shortcut (in VSI editor) did not have the icon property defined anymore - it had reverted to "(None)".
1
I resolved it in VSI, by using the Properties window for the shortcut, on the Icon property, select Browse from the DDL, then set the .ico from the source file. (The VSI detail tab still shows the default "text doc" icon, but result after install is the one I wanted/selected).
This is not the first time VSI has done this to my projects, so I'm guessing it is a slight bug of this otherwise great extension.
The problem for me was that the .ico was compressed with PNG.
Do not export using Vista PNG compression! Use normal BMP frames instead.

How to change application icon in Xamarin.Forms?

I replaced all the images everywhere (by this I mean in drawable folders and all Windows Assets folders and iOS Resources folder), but it still shows me the default Xamarin icon for the app. I tried this code, too, but it doesn't seem to work either. Can someone tell me the solution?
[assembly: Application(Icon = "#drawable/icon")]
Updating Icon and Name (Android)
If you changed the icon file name please ensure you update the Icon reference in MainActivity.cs:
[Activity(Label = "MyName", Icon = "#mipmap/myicon", Theme = "#style/MainTheme"]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
}
You should also update the names of icon.xml and icon_round.xml in the mipmap-anydpi folder to match to new icon name. If launcher-foreground.png was renamed then update the value of <foreground...> in corresponding icon.xml.
Summary (Android)
Replace the png's in mipmap folders with your new icon
If name was changed, update Icon value in MainActivity.cs
If name was changed, update name of (or create a new copy of) icon.xml and icon_round.xml
If name of launcher-foreground.png was changed then update value in icon.xml. Eg:
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="#color/my_launcher_background"/>
<foreground android:drawable="#mipmap/my_launcher_foreground"/>
</adaptive-icon>
If name wasn't changed and you've cleaned and re-built project but still your new icons are not deploying: Delete obj folder from Android project directory
Details and Issues if not updating (Android)
Xamarin Forms/Android puts 2 icons in each mipmap folder (mipmap-mdpi, mipmap-hdpi, mipmap-xhdpi, etc) - icon.png and launcher-foreground.png.
Replace both these images in each of the mipmap folders. I kept the same names but it should be possible to use a different name.
If you rename launcher-foreground.png then you must update the values in icon.xml and icon_round.xml (or their equivalent new names). The value in the <foreground...> tag references the icon/png. So, if launcher-foreground.png was updated to my_launcher-foreground.png this should be reflected in the icon.xml (see step 4 in summary above).
If the icons still don't update even after cleaning/re-building it could be that the original/default icons still existed in the Android project obj folder. The solution is to delete the obj folder from the Android project directory.
iOS
For iOS, please see Managing Icons with Asset Catalogs. A summary taken from the linked page is provided below:
For icons, a special AppIcon image set can be added to the Assets.xcassets file in the app's project.
To use an Asset Catalog, do the following:
Double-click the Info.plist file in the Solution Explorer.
Click on the Visual Assets tab and click on the Use Asset Catalog button under App Icons.
From the Solution Explorer, expand the Asset Catalog folder.
Double-click the Media file to open it in the editor.
Under the Properties Explorer the developer can select the different types and sizes of icons required.
Click on given icon type and select an image file for the required type/size.
Click the Open button to include the image in the project and set it in the xcasset.
MacOs
The guide for MacOs is Application icon for Xamarin.Mac apps. You need to consider the following steps:
Required image sizes and filenames
Packaging the icon resources
Using the icon
detailed in the linked docs above.
For Android try to set the icon app like this:
[Activity(Icon = "#drawable/icon")]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
.....
}
Make sure that you have changed all the icon images on all drawable folders ( drawable, drawable-hdpi, drawable-xhdpi and drawable-xxhdpi ).
For iOS I like set the app icons and splash screen with Asset Catalogs, here you can find a guide to how to use it:
https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_images/app-icons/
For iOS in visual studio...
Step1: Generate all the app icons from https://appicon.co/
Step2: In solution explorer, under iOS project, expand 'Asset Catalogs' and double click on 'Assests'. You can change the existing 'AppIcon' icons or Add a new Asset and attach the icons.
This is how you add a new asset...
Step3: In solution explorer, under iOS project, double click on Info.plist.
Go to 'Visual Assets' tab, click on 'App Icons' and change the 'Source' to the
asset that you just created.
Done.
Hope this helps someone!
Answer is deprecated
If I understood you correctly, for iOS project: Properties -> iOS Application
For Android: Properties -> Android Manifest
I had the same problem, but the following helped resolve it:
Go to MainActivity.cs (in the Solution Explorer)
Look for where it says 'Icon ='
Change the location of the Icon, but don't include the extension, i.e. jpg, png, etc. (For ex. Icon = "#drawable/weatherIcon")
Save the file
Restart debugging (the little restart icon beside the stop and pause icon around the top right-hand side of your screen)
If you get stuck on any part of this check out this short video from 02:47 onwards https://youtu.be/5g8lWPQZFxs?t=167. It helped me a lot.
Try to replace all the icon on iOS project > Properties > iOS Application > Iphone Icons/IPad Icons.
I change all of them, the settings icon do change. Images that on Resouces can be created by just insert images on there.
Tested this today and noticed that you only need to change the icon images in all drawable folders,
drawable,
drawable-hdpi,
drawable-xhdpi
drawable-xxhdpi.
Depending on the device it's going to use different images. For me i used "Visual Studio Android Emulator" using:
- 5" KitKat(4,4) XXHDPI Phone (Android 4,4 - API 19)
Did not need to uninstall and reinstall the app in the emulator, it updated on it's own after starting the project with "build" checked in the menu Build/Configuration manager.
On top of that no code changes were made!
If you replace the Icon.png and still nothing changed on the device, than change "Copy to Output Directory" propertiy to "Copy if newer" or "Copy always".
That was my solution.
All of these solutions are great, but
THE SIMPLEST WAY:
You can now just use ResizetizerNT's nuget package and upload one svg file and set IsAppIcon to true. That should generate everything needed.
If the existing app icon is icon.png, just name the svg to icon.svg and it should automatically work.
Alternatively, you can also add another SVG for the background in order to support adaptive icons on Android.
Context: ResizetizerNT was created by the Xamarin.Forms/MAUI Engineering Manager, Jonathan Dick

Visual Studio 2012 Deploying WPF via ClickOnce missing Folder and Files

I have a WPF project that I am ready to deploy using Visual Studio 2012 but I'm running into a missing folder issue.
If I Start the project in VS it runs fine and my test button works as expected.
When I Publish the project, the publish succeeds, running setup.exe installs successfully and program starts to main window fine.
Clicking the test button crashes the application.
Line that causes crash:
string[] reportFileNames = System.IO.Directory.GetFiles("Reports");
"Could not find a part of the path 'C:\Users\dirt\AppData\Local\Apps\2.0\GEDD6PQW.N72\8M9ONPGG.TVB\prof..tion_40c30‌​d08e677b188_0001.0000_9a5540d4bfbe5aff\ Reports'."
Confirmed Exists:
C:\MyProject\bin\MyMode\Reports\
C:\MyProject\bin\MyMode\Reports\MyReport.rdlc
Confirmed Does Not Exist: C:\Users\dirt\AppData\Local\Apps\2.0\GEDD6PQW.N72\8M9ONPGG.TVB\prof..tion_40c30‌​d08e677b188_0001.0000_9a5540d4bfbe5aff\Reports\
The Reports\MyReport.rdlc files have a Build Action of Resource and Copy to Output Directory of Copy always.
What am I missing?
Ok, was able to figure this one out rather quickly after typing that last sentence in the question...
In my case the Reports\MyReport.rdlc file had a build action of Resource and all I had to do was change it to Content (and make sure Copy always is set).
Solution:
Right click File in Solution Explorer -> Properties -> Build Action -> Content

Application Icon doesn't change correctly using c#

I changed my Application's icon for a new one, by going to: "Project/MyProject Properties/Icon and Manifiest", and load the new icon. Now, in my debug folder the icon of my .exe file appear with the new icon, which is ok, but when I execute the .exe, the application icon in the taskbar still showing the old one.
Please advice.
You have two place to change your icon.
First place
The first place is in the project.
Right click on the project
Select Property
Go in Application Tabs
Choose Icon and Manifest and select the icon you want
Second place
The second place is in the property of your Winform.
Open the Form
Click on the Form
Press F4 or go in the property of the Form
Go down in the property to find "Icon"
Select the icon you want.
The reason you have a different icon in the taskbar than your application (.exe) icon is that the taskbar use the current form icon to display in the taskbar.
After encountering the same problem, I resolved it by doing the following:
Just stop your explorer.exe from task manager and rerun the explorer.exe again.
As a commenter mentioned, you should set in the properties of the *.ico file: Copy to Output Dir: Copy if newer.
This property is not absolutely required. I developed a winform application and tested it without icon. Then I created and added the icon. The icon showed when running with the VS debugger. I copied the bin/debug directory to another pc and there it ran with showing the icon.
But the icon did not show on the development machine when the app started by clicking the *.exe file.
Logout/login windows did not cure this.
Change the Copy To Output Dir property on the icon file to Copy If Newer, and rebuild the application, did help. Now I can start the app by clicking the *.exe and the icon shows nicely.
Conclusion:
It is not always required to build the app with the icon file copied to the output directory, but with this measure you will increase your chances.
Make sure that your *.ico file contains an icon of the proper size (like 16x16 for small task bars).
Copy your new icon in Project Properties --> resources --> icons
In your Main_Load function add:
this.Icon = Properties.Resources.newIcon;
Check this out for icon information and sizes it supports. Assuming this is just a simple error that you are getting check if your ico's are as per what is specified here http://msdn.microsoft.com/en-us/library/ms997636.aspx
I had the same problem and none of the above solved it.
In my case, I had defined the icon different for two different langages (default language english and german). You can see this if there appear two resources files: FormX.resx and FormX.de.resx
With the accepted answer only default icon was changed. But when running the application on my pc the german icon was used.
So I had to change the icon for both resources. In Visual Studio you can change the current resource language by switching the language item (in the forms properties) from default to another language.
I had the same problem. The "first place" mentioned by Patrick is about the file icon, i.e. the .exe aspect. The "second place" is about the form (in the upper left corner).
Restarting windows file explorer seemed to be a satisfactory solution too. But all this didn't work today. I didn't restart the computer, by the way.
This is what really displayed the new icon in the task bar: I realized that there was an old shortcut of the .exe on the desktop. Deleting the shortcut did the job.

Categories

Resources