MSBuild Web packaging: Sources vs Binaries folder - msbuild-4.0

I can't understand why MSBuild generates 2 folders on build server each time you queue a new build, Sources and Binaries.
I have a web project deployed with a folder called Areas, containing views (.vbhtml) and DLLs which come from another project. These are properly generated in Binaries folder but the thing is MSBuild keeps packaging the project from Sources folder (.zip file generation).
Does anybody know how to tell MSBuild to package my web projects from Binaries folder and not from Sources anymore?
There is no documentation about this on MSDN site.
Thanks in advance for your help.

Related

SSIS via MSBuild - Could not load ...DTSRuntimeWrap

I'm using the CodePlex-hosted Microsoft.SqlServer.IntegrationServices.Build project to build a DLL that contains the MSBuild tasks for building SSIS packages via MSBuild.exe.
I also am using an MSBuild proj file that's floating around the web.
More here:
https://speaksql.wordpress.com/2013/06/07/a-journey-to-db-deployment-automaton-ssis-build-using-msbuild/
I've opened the CodePlex project, disabled signing, switched it to 4.6.1 and built the DLL and corrected paths etc. and go it semi-working. However MSBuild spits this error:
Could not load file or assembly 'Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
I've installed SSDT latest for Visual Studio 2015. I have various SQL Server editions installed on my dev PC. The DLL seems to be present; I've copied all I need into one folder for the moment.
Open the CodePlex project again and remove the reference to Microsoft.SqlServer.ManagedDTS.
Look on your local disk for the missing Microsoft.SqlServer.DTSRuntimeWrap.dll and note the version(s) you have available.
Now look on your disk for Microsoft.SqlServer.ManagedDTS.dll and note the version(s).
Re-add the reference but make sure you pick a DLL for which you also have the version of the 'wrap' available.
Now make sure those DLLs are (re)copied over into your working folder or whatever.
If you're still having problems, you may need to copy some files around so that MSBuild.exe can find them or edit/create a config file for MSBuild.
How to solve: Custom MSBuild task requires assembly outside of AppBase

ServiceStack as Windows Service with Razor - Setup Project

I have a servicestack project using razor exposed through a windows service, and need to create a setup project to install it (as opposed to the batch files in the demo's I've seen).
Any suggestions on how to accomplish this with a packaged setup project? Looking at the folder where the windows service files were installed, it only has the dll's, not the razor views... so I coped those over, and now I see this:
Not sure why you're getting that error, can you double-check that you're deploying the orignal Razor source files and not some interim build.
Otherwise some other options for hosting Razor is to change them to Embedded Resources, that way the original Source files get compiled into your .dll so you don't need to deploy them to your project.
Or you can pre-compile Razor Views that way the implementation is compiled into the .dll.

Using Visual Studio Online to build Windows Store Apps?

I have a Windows Store Application (Windows 8.1), hosted on a GIT repo on Visual Studio Online.
I created a build definition, left all the default values as they were, ran the build and downloaded the artifacts.
I didn't find the Powershell script used to side load (install) the application, instead I found an .exe file.
What can be missing to generate the Powershell script needed to install the app?
The default build configuration is copying the files in "bin" folder to artifacts, that's why you see exe file.
To copy the package files to artifacts, please configure your build definition as following:
In "Visual Studio Build" step, add following argument in "MSBuild Arguments":
/p:AppxPackageDir="$(Build.BinariesDirectory)\AppxPackages\\"
And in "Publish Build Artifacts" steps, set "Path to Publish" as following:
$(Build.BinariesDirectory)\AppxPackages
To package Windows Store App during the TFS build process, you can (assume you're using XAML build):
1). Set MSBuild Arguments to be: /p:DeployOnBuild=true;DeployMethod=Package /p:DefaultPackageOutputDir="$(TF_BUILD_BINARIESDIRECTORY)"\StoreAppPackage
2). Set Output location to be 'SingleFolder' or 'PerProject'.
Then, after you queue one build, you will find one folder called StoreAppPackage in the TFS Build Drop folder. You can then find the Add-AppDevPackage.ps1 file.

Porting to WinRT apps: How to use NMAKE to call winRT apps in build process

I am trying to port an open source library to WinRT.
In original setup few projects would compile to form .exe which were then called by a makefile using NMAKE. These .exe used to prepare a data .dll from .txt(raw data files).
Now for porting i have converted all the exe projects into winRT apps. This is did by adding Package.appxmanifest files and assests folder. Also making changes in project settings of all the exe.
In the configuration manager, I have checked the option to deploy after building for all these apps. Now i need to call these exe. How to do this?
Please help.

ClickOnce and both Update and Install folder

I'm refactoring some msbuild scripts for a project, that uses ClickOnce to package the application. The project packages both an install and an update version and puts then in seperate folders on the webserver. Any reason for this? The only difference when publishing the ClickOnce package, the the publish url (e.g. somesite.com/update and somesite.com/install).
I'm not an ClickOnce expert, but would it not be enough with just a single folder og both installing the client and updating it?
Thanks in advance.
NB. The update url always points towards the update folder.
Yes, it is enough to have single folder for installing and updating application. ClickOnce will do everything automatically. The only thing is that when publishing the application, you have to specify what will be the update url (and it can be exactly the same as install url)...so basically, you can give your clients that "update" url as a location from where they can install the application.