Exclude Android build while building Xmarin.Forms sln - xamarin.forms

Currently I installed a Mac pipeline agent without android tools, because I intended to use it for iOS only. My question is how to filter the Xamarin.Form solution not to build Android because it fails on this environment.
I'm wondering if there is a way for exclude the android part in the Build Xamarin azure task. I'm asking a way of doing it through: msbuild /t:restore;build /avoid:Android.csproj;Android.Binding.csproj or something alike...

in VS Mac (should be similar, but possibly with different menu paths, on PC) select Solution --> Options in the Solution Explorer. Under Build/Configurations create a new config (or copy an existing one). Then select Configuration Mappings, select the config you just created, and Disable the projects that you want to exclude.
When setting up your build pipeline you should have to specify which configuration you want to use.

Related

Switch 'Prefer 32-bit' Option Based on the Setup Project Target Platform

I have an application with two separate installer projects for x86 and x64 platforms. They reference sqlite3.dll and sqlite_x64.dll respectively. The problem is that when I build the x86 setup project, I have to switch the 'Prefer 32 bit' flag on manually for other projects. Isn't there any elegant way of managing this automatically? I found that its possible to remove the flag programmatically using this command:
CorFlags.exe MyApplication.exe /32BITPREF-
but I don't want to write too much of an ugly code. One option would be to pass a parameter to notify the project installer which platform the application is going to set up against and based on it's value run the above command in it's install event. But I hope there's some simpler and 'cleaner' option for achieving this.

Release Symfony2 project to the web

I have almost finished the development of a project developed with Symfony2, and wish to put the project online.
However, I suppose there are a lot of things that need to be done so that everything works ok. I suppose, the dev mode needs to be disabled etc....What needs to be done and how?
What are the most important things to do on a Symfony2 project that will be available to everyone on the web?
I suggest you to use Capifony for deployment. It does a lot of stuff out of the box and you can make it run any custom commands you need. See its documentation for details.
Regarding the dev mode, unless you've removed the IP checks from app_dev.php, you don't have to worry about deploying it. Of course, if you wish, you can tell Capifony to delete it on deployment.
The best way to handle deployment is to create "build" script, which will:
Remove all folders and files with tests from your bundles and vendors.
Remove app_dev.php file
Make sure that app/cache and app/logs are fully writable/readable.
Packs your project into archive (rpm f.e.)
Then, before deployment, you should create tag in your project - so it will mean, that certain version of your application is released (I recommend to follow this git branching model).
Create tag.
Run your build script
Upload archive to host
Unpack
Enjoy your project
Im currently researching the same thing.
The first thing you have to consider is "how professional" you want to deploy. There are a lot of tools you can use:
Continous Integration Server ( e.g. Hudson, Jenkins)
Build Tools (e.g. Phing, Capistrano --> Capifony, Shell scripts)
Versioning Tools (e.g. Git, SVN)
I think the simplest setup is using only a Build tool and i guess you are already using some kind of versioning.
Depending on which tool you use, the setup is different, but I think there are some things you should consider with your application (maybe not all are applicable to your application)
Creating a Tag in your Versioning
Copying the new Code in an folder on production
--> if you are in a new folder you dont need to clear the cache and logs, since these shouldnt be in your versioning the first time.
loading composer (if youre using it)
installing vendors
updating database schema
install assets from your bundles
move symlink from current version to the folder of the new site
These are the things I currently need for my application for production deployment, if you deploy to an test environment you should load fixtures and run your testscripts as well.
One other option that is very well described here is to deploy the Symfony2 application with Apache Ant. Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.

any way to pass -Usechecksum to msdeploy using msbuild

I have a website with lots of files using team build and deploying though web deploy packages. The problem i am having is that the packages are build from one of the machines from the farm and the time stamp will not always match. By default with web deploy that means a full site roll and with so many file and the sync across the cluster this is not optimal.
With cmd line deploy i can pass -UseCheckSum and this is solved for manual deployment. Now i'm trying to use a CI build with auto deploy and passing MSbuild arguments though my build setup. Is there a way to get this to deploy in the same manner?
You can't do it in your MSBuild, but you can edit the Microsoft.Web.Publishing.targets file on the build server to apply -UseChecksum.
See my answer here: https://stackoverflow.com/a/13863041/8037
UPDATE: MS has added the ability to pass the UseChecksum flag to VS 2013. To do this, add the following property to the .pubxml file:
<MSDeployUseChecksum>true</MSDeployUseChecksum>
Further information can be found here: http://blogs.msdn.com/b/webdev/archive/2013/10/30/web-publishing-updates-for-app-offline-and-usechecksum.aspx
If, by "MSBuild" you mean the Web Publishing Pipeline, then the answer is no. The MSDeploy msbuild task supports a UseChecksum property, but the WPP targets provide no mechanism through which you can set it. This is also true of a number of other features (like stored credentials).

How do you set file-specific build settings in XCode 4?

In xcode 3 it was possible to configure specific option for building every single file of a project, like for example disabling specific warnings, thumb code generation and so on.
In xcode 4 such feature is not available, or at least not in an intuitive way. This is however supported, at least as a backward compatibility feature, in projects imported from xcode 3.x.
Does anyone knows a way to specify those settings without having to open the project back in older xcode or creating a project for every single file?
Select the project in the navigator, then select the target from the list. Select the Build Phases tab, then expand the Compile Sources phase. The Compiler Flags column is where you specify per-file compiler flags.

Restrictions in creating a plugin

Recently tried the plugin example of Qt.
It didn't work at all and I was confused as to the reason. Then found the solution on one of the forums.
Qt, Application and plugin all three have to be built with the same configuration (Release/Debug)
This works for me as I can build all three in Debug/Release mode. But if I want users to extend my application using plugins I need to provide debug build of my application. (If I provide release build, users will not be able to trouble-shoot the plugin). Qt source is available so it can be built in any mode.
I don't want to provide debug build of my application to users. Is there any work around for this restriction on build mode for plugins?
P.S. I understand users can debug with logging statements, but not sure how many prefer that approach.
This is because Qt has a so called build key which is just a string containing some Qt configuration information, this is documented in the Qt plugin Howto.
So you should just go ahead and provide a debug build of your application for the best results.
You can build debug version (to have compiled in debug configuration) and strip it out of all symbols etc.

Resources