How do I sign my newly created Executable? - c#

I have developed an executable from a Visual C# project. Now whenever the app runs on other machines, the users are presented with a Smart Screen warning. I read more about it and it says that I need to sign my applications using Certificates.
Now the thing is that the Certificates from commercial companies cost a lot so is it possible to generate self signed certificates which can be used to sign the executable? If yes, then please explain how.
Also, is it possible that the Smart Screen warning disappear once many users start using it?
Is there any way also with which I can prevent tampering with the application?

Related

Why does my application cause a SmartScreen message?

I make software on a regular basis for friends to use and for school tasks. I upload these executable files to my website. but when they download the software and execute it, they get this error
I understand you simply press "More info" to get around this, but is there a way to completely stop this???
I made a small project to test if it will still happen, and it does.
I haven't added any extra code, just that label. I've noticed the error only appears if the file was downloaded from the internet, or copied from an external drive. I want to make a custom installer for a game I'm planning and I don't want this coming up on the installer :/. Anyone able to help out in this situation? Thanks.
Your application needs to be Signed. If you are only giving this software to a few people, just tell them to click 'More info' to run your app.
If you want to distribute more widely you will need to sign your code. Check out this page to see how this can be done.
See this Stackoverflow post that could help you too.
It is the Windows SmartScreen at work and there is not much you can do about it. It would be possible to buy a certificate and sign your executable, but for freeware this is really out of scope. The smartscreen will learn over time, that your software is not dangerous, if it is installed often enough.
The warning is not related to VisualStudio projects, it affects any new released executable.
Actually I support the idea of SmartScreen to protect users, but it should not depend on a certificate, which can be bought by developers.

Possible to launch an application in the "Metro" environment and desktop environment? - Windows 8/8.1

Ok, so I'm a major amature to the world of programing and I want to make an app that can be deployed through the Windows Store. This is mainly because it seems easier and cheaper than if I were to distribute it myself. I'm using Visual Studio Ultimate 2013 (hooray for free college software!) and I plan on using c# and JSON to pull some data from a public api.
My question is: If I develop an app so that it can be downloaded and installed from the Windows Store to be primarily be used in "Metro" mode, can I also add a button that makes it switch over to desktop mode like Google Chrome has?
Note: I have done some research on the subject and I think this is doable, but I could never find specifics on how it's done. I appreciate any insight you can provide!
AFAIK, as of Windows 8.1 there is no built-in support in WSA to run in a window on the desktop, unless you find that Snap mode suits your needs (it does for me). Primary browser is an exception, but it's not strictly just a WSA.
However, there are 3rd party solutions to do precisely that, e.g. ModernMix, so technically it's possible, but goes outside of what you have access to during WSA development.
There are also talks about Windows 8.2 supporting this out of the box: dailytech

C# Windows 8.1 app hide settings and data from user

I'm building a Windows Store app with C#, and I have certain data and settings that I need to persist between sessions. Right now I'm doing this with local files, but for some of it, I don't want the users to be able to edit the files. I currently thwart that by using "scary" file names and obfuscated data, but I want better security, but also don't want to have to jump to my cloud service just to pull their settings, because I want functionality when internet connectivity doesn't exist.
How do I do this? I feel like this is something that should be pretty commonly used feature in apps.
I never worked on Windows 8/8.1 apps, so maybe there is some integrated feature to do what yout want, but I didn't find anything on that subject.
In fact, what I found seems to indicate the opposite :
If you want the data of your Windows Store app to be secured, you have
to do it by yourself.
Depending on the desired level of security you could try using some form of encryption for your local files.
This would make the settings unreadable by the user, and prevent them to tamper with it.
But as pointed in Windows 8 Apps - Local Storage Security, encryption might not be the best way if you really want to make sure the data cannot be edited outside your app, since it is possible to extract the key from your app and decode the data.

Windows 8 Store Import

Reading the following (and skimming other areas of the site):
http://msdn.microsoft.com/library/windows/apps/br211361.aspx
It seems as though I have to re-write a program I've been writing in VC# 2010, to be able to put it on Windows Store. Is this true? Can I simply import my project into VC# 2013 and then put it out there? Is there a reason I shouldn't do that even if I could (i.e. it looks different than other Windows 8 apps and users will be off-put by it)?
If I can't import and release my project into Windows Store directly, and this is a little bit of a tangent, but, can I at least import it into Visual Studio 2013, and then begin rewriting/adding the parts I need to to be able to make it compatible with Windows Store? I've never used app stores before, so please be gentle.
In most cases, opening a VS2010 project in VS2013 is not a pain.
You can find 2 kind of apps in the Windows Store :
Modern UI apps (aka Metro)
Desktops Apps
If you want to create a Modern UI app you need to target the .Net 4.5 framework. To do so you need to upgrade to VS2013.
But most of your work will be to rewrite a huge part of your program as the modern UI is not compabible with WPF (and you will need to manage touch devices). Other assemblies also doesn't have all the features of the desktop ones, so you will probably have a little bit of work in that area too.
Here is a link that explain the process of publishing an app in the Windows Store : http://msdn.microsoft.com/en-us/library/windows/apps/jj657972.aspx
If you want to publish a desktop application it seems to me that you only need to provide an URL to download your package. Be careful it is not possible to submit that kind of app with a personal account, you need a company account to do so. You can find more information about that process on MSDN: http://msdn.microsoft.com/en-US/windows/desktop/dd535817

How to create a launcher application for two Air desktop aplications

I know that my question is very general and I don't expect very detailed answer either, just a lead would be great.
Here is what I want to achieve.
I have build two desktop applications using Adobe Air from Flash AS3 files. Both applications are parts of the same project. They're displaying over two screens, each app on one screen, and whatever you do in one it reflects the other, because they are communication each other through local connection class (AS3).
In fact those two applications are One Multi-screen Application. However to install them on the desktop computer you have to first install one Air app and after that the second Air app. The procedure with launching the apps is the same. You have to click on one icon for the first app to open , and than you click on the other icon for the second app to open, and only then you have whole application up and working.
So I'm looking for some solution which would allowed me to "pack" two installation Air files into one package. The user would have to click only on one "instal.exe" icon to fire up installation of those two air apps.
Maybe it needs to be use some external small C++ scrip, or application launcher - I have no Idea
Pease help me with this case, as I couldn't find it anywhere. I would be very grateful even far the smallest lead.
Thanks in advance
Not real sure but could this help ?
http://www.adobe.com/devnet/air/articles/air3-install-and-deployment-options.html
Depending how large / complicated your applications are maybe you could redactor it into one application and use Native window to then launch two windows each one containing the separate app logic.
This may even offer advantages over using the local connection class, and of course help ease development and maintenance of two separate apps.

Categories

Resources