Visual Studio 2010 Publish Profile Target Location with Relative Paths - visual-studio-2010

How do I include relative paths in the publish profile of a web application in Visual Studio 2010?
For instance, my web app resides in a the folder structure: C:\Foo\MyWebApp\MyWebAppUI. I would like the output to be published to C:\Foo\MyWebApp.

While it's not very clearly stated you can in fact use relative paths for the target location path (at least for File System publish). You'll have to play with it a little to get the right relative reference to the target. For example,
C:\My\Project\Is\Located\Here
A relative location of ".\Release" will create:
C:\My\Project\Is\Located\Here\Release
That said... I do not think that you really should be publishing your project on top of your project source code. Especially if you're precompiling because of the reference changes made in the .aspx files.

Related

Azure Devops - Interop Libraries

Currently through Azure Devops, I'm setting up a .Net Desktop type with pipe-line that includes assembly libraries. In my understanding this should've work if the scenario was TFS is on-premise and I can just install any 3rd party non-nuget libraries in that server and make the build work. Right now I was able to make this work by literally copying the .dlls but I felt its more of a hack than actually letting the build know that I'm referencing assembly / non-nuget package libraries.
I'm pretty sure i've missed something, is there a way to properly set this up?
Even though it's not a recommend way, but you could check in these libraries/dlls in source control. TFS could download them from server to your build agent and refer them.
First, make sure your local build is successful and if just the TFS build is failing then it is usually due to dll reference path issue. Make sure that the Dll is referenced as a relative path in the project file (.csproj).
To add a relative reference in a separate directory, such as C:\tfs_get\Sources\assembly\abc.dll, do the following:
Add the reference in Visual Studio by right clicking the project in Solution Explorer and selecting Add Reference.
Find the *.csproj where this reference exist and open it in a text editor. Lets say your .csproj location is c:\tfs_get\sources\myfolder\myproject\myproj.csproj
Edit the < HintPath > to be equal to
..\\..\assembly\abc.dll
This build will work properly with the assumption that the folders ( assembly, myfolder) under the sources folder exist in TFS.
Update
Have a folder named "libs", or "libraries", for example, that contains all the assemblies required by your projects to compile and run.
Reference these assembly by right click the reference folder of project and browser to these assemblies files.
For build, in Source Settings (XAML, Build Agent Folder)/Repository, keep the similar structure.
More details please take a look at this similar question : How to properly check in DLLs/assemblies to TFS/Visual Studio Team Services (was VSO)

Prevent Visual Studio from automagically changing the physical path of IIS virtual directory?

I have a Visual Studio "solution" which contains a Web application project (among a few other projects). Visual studio "typical" setup seems to be to insist that the output directory for binaries is smack in the root of the project source directory. In particular, each time the web application project is opened, Visual Studio will reset the physical path of the IIS virtual directory to point to the project directory.
This is problematic on many levels:
It's never wise to mix binary output directories and source trees
If the web application is buried deep within a directory hierarchy of other source, wherein many projects produce libraries which may be used as support libraries in the web application, then all the other supporting projects must have their binary output directories set to a bin directory a some non-obvious, nonsensical location somewhere in the source tree.
This "typical" VS setup does not have your web app setup duplicate the "production" setup you would get from a publish: there may be files in your source tree (an old .js file there there from a repository extraction, for example) that are not referenced in your projects, and so would not be in the production published package, but are there in your debugging setup.
It is very possible and very easy to configure all the projects in a Visual Studio solution to build to a bin directory in some subdirectory cleanly placed outside the source tree. It is also easy to ensure that the web app build places all content cleanly in this directory. It is also easy to configure an IIS virtual directory to point to this build output directory. And then Visual Studio, unannounced and unbidden, screws this up by arbitrarily changing the physical directory of the carefully configured virtual IIS app, to point to the middle of one's source tree.
How can this crazy-making behaviour be stopped? I.e. how do I prevent Visual Studio from automagically re-setting the physical path of the virtual web directory each time the web app project is opened?
This question has been asked many times here on Stack Overflow, but I have seen no real answers:
The response to this question (IIS8.5 is automatically changing Physical Path property) simply indicates how to control the order in which Visual Studio does its repointing.
This question and response (Visual Studio creating IIS virtual directories when solution opened) simply confirm the behaviour.
The response to this question (Opening projects changes iis settings) is simply wrong, as are some of the comments.
These questions (Visual Studio 2012 changes IIS application directory without asking), (Visual Studio changes local IIS configuration) have no responses.
Basically, no one has said it can't be done, but no one has give a decent solution either.
I have my application in IIS pointed at %SystemDrive%\inetpub\wwwroot\web, and would like it to stay that way. Like others, I discovered that every time I opened the solution in Visual Studio (I'm using 2017), it would change the application's path in IIS to point to the path that Visual Studio uses.
I've made the following change to the project settings (web tab) for my project. In the servers section, I've set the drop-down to "External Host", and then entered the project URL as https://localhost/web. I'm now able to open the solution in VS without it updating the path in IIS.

Xamarin project won't build after moving folder path

I have created a new Xamarin Forms application using the latest Xamarin Studio for OSX and I have build errors caused by the following:
1. Moving the project on my local machine
2. Putting the project in source control and restoring to another machine
If I type xbuild in the terminal I can see that my project is referencing a file path from my other computer (now on the 2nd computer after restoring from source control).
I cannot find the file path information in any of the files inside of the Xamarin Forms solution so I can't tell where it is picking up this file path from!!
/Users/x/Documents/Work/Wire%20Mobile/src/Wire.sln: error : Could not
find a part of the path "/Users/x/Documents/Work/Wire
Mobile/src/Wire.sln".
Can anyone advise how i can store a project in source control without having hard links to the file path that it used to reside on in the old machine please? Also I've tried this on two projects now, could it be a bug in Xamarin?
the xbuild doesn't support file paths with %20 in them. Visual Studio Team Services is quite fond of these types of file paths however!
removed %20 from the path and now it works fine.
also affects Unity projects and Visual Studio for Mac projects.

Getting directory of current project, and not visual studio plugin

I am currently trying to write a plugin for visual studio that accesses the bin folder of the currently open project in Visual studio. However, all the solutions I have come across simply return the bin folder and directory of the plugin that is I am writing. For example, I have used the method detailed in the article below, which claims to return the current project's directory.
How to Access Bin Folder of Active Project using visual studio 2010 add in
path = System.IO.Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
System.Windows.Forms.MessageBox.Show(path);
Is there anything I am missing on how to make this work?
A Visual Studio project can have several project configurations, each one with a different output build folder that is set in the project properties window, Compile/Build section, Build output path. Furthermore, the output build folder can be absolute or relative to the project folder.
The code of this article gets the absolute output build folder for the active configuration of each project of a solution:
HOWTO: Get the output build folder from a Visual Studio add-in or macro
http://www.mztools.com/articles/2009/MZ2009015.aspx

Visual Studio relative paths

I have some videofiles in our SVN repository alongside the sourcecode of my application. After checking out, the visual studio project is built using cmake.
my code needs to load the video files and it works well when running the application out of visual studio - but when the exe file in the release/debug folder is doubleclicked, it crashes because the relative paths are not right anymore. aparently when running it from within visual studio, the folder where the .sln file lies is considered the root of relative paths.
how can I refere to the videofiles from the code, such that the application works if i run it within visual studio as well as if i double click the exe in the release/bin folders, without to duplicate the videos? (they are quite big)
I need to do this because I have to hand in my application such that it can be compiled and run out of the box as well as executed without visual studio.
You can change your project's settings to make the IDE's behaviour match double-clicking on the executable, and then fix your relative paths.
For VS10/VS11, in the project's properties page, at the top select All Configurations from the Configuration: list.
Then select Configuration Properties->Debugging and set the Working Directory to $(OutDir)
Beware that running the executable from the command prompt in a directory other than $(OutDir) will still fail.

Resources