I need to copy HTML files to a local network server whenever they are checked in to TFS. I have been searching the net for the past 7 hours, and have been pulling my hair out attempting to create MSBuild scripts without success.
I need a set of simple steps which cause files to be copied with no build needed (I don't have a project file, and don't actually need to compile anything.)
The location of the server is on the network, and is accessible via Windows Explorer.
Related
I've got a solution that builds locally on my developer box, and I've tried it using remote desktop on my TFS build server, which is server, controller, and agent. What is baffling is that when I queue a build, it fails, with this message in the log file.
Considered "..\..\..\..\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.Coverage.Analysis.dll", but it didn't exist.
Part of what is so confusing is that If I navigate to that location, I can see the file that I need.
In further testing, I went to the build source folder and loaded the solution there. It shows that it can't located the reference. If I just remove the reference, and re add the exact reference again, it builds.
If you have a better title or want further clarification just ask or make suggestions.
I am using Visual Studio 2013. I have all components installed on my machine needed to run this application I am questioning. I have not completed the application to deploy for testing but some questions arose before completion that I need addressed now; to prevent overhauling later.
Here's how it should work when deployed to clients.
Client installs application which runs on desktop not windows store in WPF.
The application is per user and runs for all users on the local machine.
Each user needs to read and write data to a database file but it needs to be the same MDF being used. Therefore each process of the application, no matter the user session, on the same machine, all interact with the same database / same data.
Question: When adding the database to the project where will it be installed by default? In the applications program folder along with program? If so what restrictions exist to read/write to the database and are there any? I have added no extra security on my side. The info isn't private or critical.
Question: Would end users need to install any sort of SQL in order for the application to do this? If so I can package it with the install but this seems like alot of overhead during install.
If the MDF is installed per user how do I change this to install it once for all users?
Before saying so, yes this needs to be a database and not a file. Reasons I need not describe. I have considered alternative but this is by far the best solution so please no alternatives.
When you add mdf file to your project and set properly the value of Copy to Output Directory, it will be copied to the bin directory of your project whenever you build the project. When you create setup project for your app project, it will be by default copied to the folder where your app is installed. You can either specify different location in your setup project or copy the file to the desired location during the first run of your app.
There are several suitable folders in Windows, one possible choice is %PROGRAMDATA% C:\ProgramData folder, but it is by default read only for non-admin users. If you do not worry about security, go for %PUBLIC% C:\Users\Public. It is completely accessible for all users within interactive group.
I recommend to package LocalDB with your project. It can be installed silently with one line of code, though only with admin privileges. For non-admin click-once install you would have to use SQL CE, which is quite different and uses sdf files.
I think you should do it this way: include a seed database MDF file in the application and copy it to a %PUBLIC%\YourApp folder when the application first launches. Optionally include LocalDB install in your setup project.
My company uses TFS 2010 to deploy our web apps from our local environment to our development environment. Here's the compiled output in my local directory for one of our vended web apps, ProGet, (http://inedo.com/proget/overview) in question that isn't deploying correctly. I expect all of what I see below to deploy to our development server:
Here's my .xaml build file:
Finally, here's my solution in Visual Studio:
When I queue the build, this is what's built out to our development server - notice it's missing a bunch of files/folders, but it does include "Resources" and "bin" and web.config:
This app is a vended application, ProGet, an already developed corporate Nuget repository that we purchased a source code license for. Does anyone have any ideas what I might be doing wrong?
EDIT
Here's a screenshot of my local IIS and the window to the right is a result of right clicking the website and choosing "Explore". Notice the *.cs files. Weird they don't compile down.
The Default Build Template (DefaultTemplate.xaml) should output the same files you get when you compile locally.
However, from your screenshots it looks like you are using a custom build template xxxx_DeploymentProcess.xaml that is obviously doing something different with how it outputs the build files. There is no way for us (stackoverflow community) to know what your custom build process is doing.
You could try switching back to the default template, and we'd be able to help you then. But, there's a good chance that you are using a custom build template for a reason, and you might not want to eliminate it before you know what it's doing.
Okay I have created my project in Visual Studio 2012 express edition. I have used ClickOnce Application deployment to create a setup file. Everything works absolutely fine when i run the project in my computer. But when i install the same project in another computer database connections are not working saying path is not correct. I understand that the path given to connect to the database is of my system. Now that is my problem and what should i do to make the database stuff to work in other systems as well? Please help me as this would make my project complete!
Thanks in advance.
Generally the application would be deployed with an app/web.config. Or another configuration file. Your code then reads the connection string out of this file to find the database.
On deployment, you can change the config file after deployment, this can be done manually, or in IIS if its a web config file, not sure on automatic editing with click once deployments; but a config file or setting of some kind would be key.
I'm starting to use MSDeploy quite aggressively within our Visual studio web projects projects as a mechanism for producing self contained build artefacts that have everything needed to setup and run themselves on a remote server. This works fine for simple web apps, however we have some web applications that need additional command line tools to be run on the remote servers before the application can be considered to be "deployed".
I have followed Sayed's advice to include additional files and folders within my package, but they appear as a subfolder within the deploy of my web application (and that's not good, as the files are only needed once at deploy time).
Ideally, I'd like the package.zip to contain the tools as a set of sibling folders to the IIS aplication, and have a mechanism to run an exe within those folders at deploy time. (I think this is via the deploy.manifest, but would like advice here too) but NOT actually leave the files on the remote machine.