Wednesday, November 21, 2018

Getting other files in ASP.NET Bin Directory when Publishing


I needed additional files in my ASP.NET's Bin directory that were not part of the ASP.NET project itself (they were configuration files and Native .dlls).  I tried various methods from different suggestions, but the solution described here is the only one that worked:

http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx

https://stackoverflow.com/questions/35000825/copyallfilestosinglefolderforpackagedependson-and-web-deploy


Some of the options that didn't work included marking the files as Content, using Post-Build events to copy your files to the Bin directory.  None of that works on putting them in the Web Deploy Package.


My issue was that my additional files (.dll and .ini) would not make it to the Web Deploy Package.  Getting them into the Folder Profile's output was not an issue.   There does not appear to be a way Visual Studio GUI or in your Project's Solution to make this happened.

You must do the following:

- create your Web Deploy Package.

- show all of the hidden files in the Solution.

- Find the PublishProfiles folder, then find the .pubxml file that corresponds with your Web Deploy Package's profile.

- You must manually insert the highlighted section below into your .pubxml file:




- the location of your extra files is important because the _CustomFiles Include entry specifies the location of those files.  I used  "..\extraFilesForWebDeploy\**\*"   This will get all of the files and subdirectory in a directory called extraFilesForWebDeploy that is at the same directory level as the ASP.NET project's folder. 

- If you just put your files there, they will be put in the ASP.NET's main directory.  To get them in the Bin directory, I had to create a Bin directory in my ExtraFilesForWebDeploy directory and put the files I wanted to be delivered there.

- You must have the CopyAllFilesToSingleFolderForMsdeployDependsOn section to get them in the Web Deploy Package.

-The only part that needs to be adjusted for your project is the location of the source files.