Posted on

Deploy Xamarin Android App to Google Play Store

Xamarin App basic configuration

Visual Studio Configuration to Debug


Open in editor xml (using Visual Studio)


Project Propreties

  • Set use Fast Deployment (in the image below is not set)
  • Select apk

Visual Studio Configuration to Play store


Open in editor xml (using Visual Studio)


Project Propreties

  • Remove use Fast Deployment
  • Select bundle

Posted on

Visual Studio 2022 – programming on Framework 4.5

.NET 4.5 has long been out of support

To use .NET Framework via Visual Studio 2022 you have to download the nunget package :

Rename the extension of the package in .zip to decomprime it.

Put the content in this Folder :

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

You have to put at the first level the content of the folder


that you can find inside the nunget

Posted on

CS1617: Invalid option ‘6’ for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default

Compiler Error CS1617

Invalid option ‘option’ for /langversion. Use ‘/langversion:?’ to list supported values.

For example

Invalid option ‘6’ for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default


Right click on your project and select “Properties” from menu.

Select Build menu and, in the bottom, click on button “Advanced”.

In the next form you don’t have any voice for the field “Language Version”

Select “default”


Posted on

Error publishing Visual Studio Solution on GitHub

On VS 2013 and VS 2015, you should have this error, publishing, first time, your solution on GitHub Repository :

You cannot publish local branch master to the remote repository origin because a branch with the same name already exists there. You might want to rename your local branch and try again.

VS 2013/2015 will initialize the GIT repository when your first commit with sync. So, simple solution is to delete the GIT repository (how to delete) and recreate it without initialize option.

Posted on Leave a comment

Accessing an IISExpress site from another device

You may need to access your developing site with Visual Studio from another device, for example if you want to test if the site is really responsive. You just need to make some changes.

When you open your site by visual studio, the address displayed is


, where port_number is the port number assigned to the project by Visual studio / IISExpress.

In your project directory you find the .vs directory. Open the file


Here is the bindings tag. In the example you see a specific port number but you have yours.

 <binding protocol="http" bindingInformation="*:60132:localhost" />

Add a line with the ip of your computer. You can add as many as you want.

 <binding protocol="http" bindingInformation="*:60132:localhost" />
<binding protocol="http" bindingInformation="*:60132:" />

Open a dos prompt with Administrator privileges and type the command:

netsh http add urlacl url= user=everyone

At this point you have to create a firewall rule for your port. From the prompt prompt, launch the command:

netsh advfirewall firewall add rule name="IISExpress_website1" dir=in protocol=tcp localport=60132 profile=private remoteip=localsubnet action=allow

Now you can see the IISExpress website from any networked device using

Unfortunately, with this operation you’ll no more control the site using http://localhost:60132 because you need administrator privilege to use the port 60132. So you have two possibilities : first open Visual Studio with Administrator privileges; second, delete this acl:

netsh http delete urlacl url=
Posted on Leave a comment


Visual Studio allows us to publish our web site on a web server in the lan (intranet) or on an external web server, for example hosted on Azure.

In the situation of a server on the lan, you have created, through IIS, a site that resides on a certain directory, empty now, on a web server. Otherwise you have already prepared an external site.

In Visual Studio, in the right panel called “Solution Explorer” we click with the right mouse button on our project and select the “Publish” option. The “Publish” window: there are, on the left, the fourth step to do for publication.


Go to the drop down menu at the top center and choose “New Custom Profile”. Invent the name of this profile. Once inserted, you will go directly to the next step.

Connection with “Web Deploy”

Publish Metod : choose “Web Deploy”  whether you publish your site on a server on the lan, both in an external server.

Server (web server in lan) : http://myserver

Server (external, es Azure):

Site name (web server in lan) : name of the directory in which it is to be the site

Site name (external, es Azure) : es. mysite

User Name e Password (web server in lan) : put a administrator user of the server machine. If the machine is in a domain,  use a local administrator.

User Name e Password (esterno) : ftp user

Destination Url : web site address. es : http://……………..


In this tab the program reads from we.config the database connection strings. If your target site database is different, you need to specify the right connection. The publication will replace the target strings to the source strings. We will see later that there is a method to insert in the web.config further changes to the web.config of origin.


Here you can see the files that will be sent to the destination that is the new files or changed since the last submission. And you can publish your site!

web.config configuration

Our destination website may have other special features, specified in web.config, different from the starting site, as well as database connection strings. We can create a specific web.config for each deployment.

Position  the mouse on the project. In the “Properties”, find the directory “PublishProfiles” which contains previously saved data. Here you will find a .pubxml files for each of the deployment that you have created. Go to the file you need, push the right mouse button and select “Add Config Transform”.

If you go in the web.config you will see that there is an additional file named as your deployment. Let’s see some examples of what you can do with the tag that you set within the <configuration>

 <add name="MyDB"
 connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
 xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>

this stringa substitutes (xdt:Transform=”SetAttributes”) the attributes of the tag named  (xdt:Locator=”Match(name)) “MyDB” with these.

<appSettings><add key="myemail" value="" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/></appSettings>

this stringa substitutes the attributes (xdt:Transform=”SetAttributes”) of the tag with key (xdt:Locator=”Match(key)) “myemai” with these.

 <mailSettings xdt:Transform="Replace">
 <smtp deliveryMethod="Network" ........................

This string transform (xdt:Transform=”Replace”) entire tag mailSettings and its content.