Tuesday, May 24, 2016

Run Program as Administrator programmatically

I need to run a program as Administrator programmatically.

Fortunately googling this was so easy. Found this one:
Run Program As Administrator in vb.net


Open the Project Properties then click on View Windows Setting button. It will open the app.manifest file.

Using Squirrel to replace ClickOnce

Installing Squirrel

While I was searching for a way to make ClickOnce deploy easier after all hardship about certificate and identity errors, I bump into Squirrel.Windows. Thanks to Travis's comment in this question: Deploy a ClickOnce application without signing. Even though no one answer that was Marked ans Answer (yet at the time), the comments really help to give me an idea about some alternatives.

I create a new project that target a .Net Framework 3.5 and start searching for it in the Manage Nuget Packages for Solution.Current latest stable version is 1.4.0. I install it right away.


Create a new Nuget Package for my Visual Studio Application

To create a new Nuget Package, I must install the Nuget Package ExplorerIf uses Internet Explorer, it will run immediately to install if click the Download button.

This is when I run it:



1. I just have to create a new package (Ctrl+N).

Monday, May 23, 2016

Trouble renaming IIS Website.

I have a web server. IIS on Windows Server 2008 R2. It'a a production server which runs many applications for my company.



Every time I open the IIS Manager I can see that "Defaults" as the name of my website. It really itch my eyes for month. But today I decided to change the name to something else.I think about name it the same as the domain name. So I try right-clicking the "Defaults". Owh, there's a "rename". Maybe I should try it.

Sunday, May 22, 2016

Success: Compiling LESS into CSS with Visual Studio 2015 via Web Compiler.

From the last time, I got disappointed for not successful in trying to produce a CSS file from a LESS using Web Compiler.

Reference: Attempt Compiling LESS into CSS with Visual Studio 2015 via Web Compiler.

I also tried the Bundle Transformer: LESS. but misunderstood that its a translator, not a compiler.

But this morning, after turning on my laptop, I open my last project. I try to re-compile my LESS file, of course using the Web Compiler. So strange because it works. It even generates the minified css.

Whats happening? I remember that I had restarted the Visual Studio many times. Do I have to restart my laptop? Is that it? I should think about that sooner. Wasted my precious hours on nothing. Arrgh.

By the way, I'm happy that it works. The usage is so easy.


ps: today I learned a very valuable lesson - restart my PC fist if any problem occur.

Attempt Compiling LESS into CSS with Visual Studio 2015 via Bundle Transformer: LESS

From the last time, I got disappointed for not successfull in trying to generate a CSS file from a LESS file using Web Compiler.

Reference: Attempt Compiling LESS into CSS with Visual Studio 2015 via Web Compiler.

Now I want to try the Bundle Transformer: LESS. Wish me luck.

I can install it from "Manage Nuget Packages for Solution.." in the Nuget Package Manager.



Attempt Compiling LESS into CSS with Visual Studio 2015 via Web Compiler.

So far, I only write CSS for my website presentation. But I heard that VS2015 can compile LESS to CSS and minify it. But I heard wrong. The feature is never in VS2015 but in the previous version that is in the VS2013. That is disappointing.

So I try searching for any extension on the net. Bumped to this in the VisualStudioGallery called Web Compiler. I decided to download and install it.

Then I just have to right-click on the LESS file (in Solution Explorer) and choose compile (right?).



Saturday, May 21, 2016

“An attempt was made to reference a token that does not exist” when sign the assembly

I'm working on a ClickOnce deploy-able project. Since begining of the project and many build and published, no error about this happen. but suddenly this error occur:
Cannot import the following key file: ***.pfx. The key file may be password protected. To correct this, try to import the certificate again or import the certificate manually into the current user’s personal certificate store.

Then I try to reselect the ***.pfx in the "Project Properties->Signing->Choose a name key file". Then This message appear:
“An attempt was made to reference a token that does not exist”
I don't understand why this happen. After searching the net and many attempts for several hours, I finally able to solve it just by running the Visual Studio as Administrator.


I got it from here: Error when using Visual Studio 2010 for assembly signing: “An attempt was made to reference a token that does not exist”

But my solution was not from the chosen as answer but from Josh M.:
Running Visual Studio as Administrator fixed this issue for me.
Problem Solved.


ps: Maybe I should always run the Visual Studio as Administrator. Who knows, I might save several hours of searching.

Conditional Compilation

Today I learn  that I can do Conditional Compiling on VB.Net,

In conditional compilation, particular blocks of code in a program are compiled selectively while others are ignored.

Reference: Conditional Compilation in Visual Basic

For example if I Write this code in the form Load event:
    Private Sub frmStarter_Load(sender As Object, e As EventArgsHandles Me.Load

#If DEBUG Then
        MsgBox("This is DEBUG build")
#Else
        MsgBox("This is not a DEBUG build")
#End If
    End Sub
When I build in DEBUG mode, the "MsgBox("This is DEBUG build")" and when I build in RELEASE mode or any other custom mode, the "MsgBox("This is not a DEBUG build")" will be triggered.

This is really handy.

Positioning a control on the center of the form

Sometimes when I created a resizable or maximized form, I want to position my control on the center of my form depending on the screen resolution.

I use this code:
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
    MyBase.OnLoad(e)
    Dim btn = New Button()
    Controls.Add(btn)
    btn.Location = New Point((ClientSize.Width - btn.Width) \ 2, _
                             (ClientSize.Height - btn.Height) \ 2)
End Sub
Reference: Centering (perfectly) dynamically created buttons on form?

Tuesday, May 17, 2016

OLEDB error. "Operation must use an updatable query."

At one time I published a web project that used OLEDB to connect to Ms Access and update some data I got an error "Operation must use an updatable query."

Some googling reached me on this site: “Operation must use an updateable query” error in MS Access

The chosen as answer doesn't really solve my problem. but the second answer really solve it.

The Answer:

There is no error in the code, but the error is thrown due to the following:
 - Please check whether you have given Read-write permission to MS-Access database file.
 - The Database file where it is stored (say in Folder1) is read-only..? 
suppose you are stored the database (MS-Access file) in read only folder, while running your application the connection is not force-fully opened. Hence change the file permission / its containing folder permission like in C:\Program files all most all c drive files been set read-only so changing this permission solves this Problem.
So I change the permission on my folder (App_Data) that stored my Ms Access database to full control.
Problem solved.

Monday, May 16, 2016

Problem with "Application identity is not set". (solved?)

Today I got a problem when I test my application. I commonly build my application then run it from the "debug" or "release" folder in my VirtualBox.

After some googling, I learn that the cause of the problem comes from this code:

lblVersion.text = Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString
Reference: How to show program version in your form?

Sunday, May 15, 2016

Process Executor to execute external process

Today I found a Nuget package name Process Executor in. I often make program that need to run executables. So I decided to take a look on this but I don't have the time for now. so I bookmarked this.

Some quote from the site:
DescriptionProcessExecutor is a wrapper class for System.Diagnostic.Process which created with intention to manage external process within .NET application without showing up the console window and capture all the console output logs at the same time. Download From...GitHubNuGetCodeProjectClass Diag

Description

ProcessExecutor is a wrapper class for System.Diagnostic.Process which created with intention to manage external process within .NET application without showing up the console window and capture all the console output logs at the same time.

Include the project2.exe.config info in a reference executable in .NET?

I have a problem in a referenced project where the project2.exe.config file for a referenced project in not included in the project. Every time I must copy the project2.exe.config file into my project manually to make it works.

Tried googling and found this:

I have one executable project, let's say A, which is launching another executable project Bin the run. In order to have a B.exe in A's current working folder, I add B as A's reference so that after the compilation a B.exe will be copied into A's folder. However, I noticed the configuration that I make for B is not copied or generated in A's folder (there is no B.exe.config file in A's folder, only B.exe), and hence the stuff such as tracing for B is not configured correctly.
I can of course copy the B.exe.config manually to A's folder, but I bet there is some automatic way to do that. Could anybody help me?

Reference: How to include the App.config info in a reference executable in .NET?

Decision to keep a Journal

I've learned many things but forgets many things too. After reading this "Should every programmer keep a “Lessons Learned” journal?" I then decide to keep my own lazy journal in a form of a lazy technical blog. This is to make me easy to retrieve my old may forgotten knowledge and to help other if they happen to walk in my shoes.