How to stop Visual Studio caching Imported MSBuild scripts? - visual-studio

I have a csproj file which references a shared MSBuild script with an <Import> directive. I have noticed that when I change the shared script, I need to close and reopen Visual Studio before it notices the change - a build within Visual Studio notices changes to the csproj file but not the shared file.
This doesn't happen when I build the project with MSBuild from the command line. Is Visual Studio caching the imported script? If so, why? And how can I turn off this behaviour which makes authoring build scripts hard / impossible using Visual Studio?
Thanks!

Instead of closing and re-opening Visual Studio have you tried, unloading and reloading the project (.csproj) which imports the shared script? You can do this from the Solution Explorer in Visual Stduio by right clicking on the loaded project and selecting unload and then on the unloaded project and picking load.

In my experience, Visual Studio 2015 behaves better than Visual Studio 2008.
VS picks up changes from imported files in most cases, at least for C# projects.
YMMV for other project types, though.
While the solution explorer doesn't reflect changes, the build uses the updated version of the import file.
So, the solution may be to use a more recent version of Visual Studio.

Related

how to debug simplescalar sim-fast.c in visual studio 2019?

I have made a few change in simplescalar sim-fast.c, but I don't able to debug this change in visual studio 2019.
are there any way to do this?
Thanks.
From your comment, it seems you are trying to debug an opened file/folder right?
Visual Studio is not supported to build/debug a file/folder, at least it is not possible for a single file. For folders, some may be supported, but need to have some files been included, such as a .sln file, a .vcxproj file and so on. Instead, Visual Studio supports to build/debug a project/solution.
I'm not familiar with simplescalar, I guess it is not possible to open it as a project/solution in Visual Studio to build and debug though. You can have a try open it as a project, and perhaps consider using other editor tools, if it can't be opened as a project, for example Visual Studio Code.

How to open a Visual Studio Code Folder (Project) in Visual Studio IDE

How do I open I a Visual Studio Code folder in Visual Studio 2015?
If I open it as a "Web Site", it tries to treat the node_modules directory as part of the project's normal JavaScript files and hits an error when the path exceed the maximum path length.
But I can't open it as any other project type unless I first create a project of that type and then move all the VS Code files into that folder.
Should I be trying to open it as a web site?
Or should I create a new project and then copy the files + folders into it?
Is there any advantage to having it as a project?
If I do create a project, it makes it difficult to work together with someone who is just using VS Code?
And if I use a project, which project type should I select?
Finally folder view has arrived in VS 2017 :)
You can find more details in here.
Currently there is no way to open a folder directly with Visual Studio.
Why? Because Visual Studio and Visual Studio Code only shared their name, not the idea behind it. To extend Jenny O'Reilly answer:
Visual Studio Code is a folder oriented editor
This means VSC has the same Point-of-View to your Project as the File Explorer.
Visual Studio (not Code) is a solution oriented integrated development environment (short IDE)
Instead every Project in Visual Studio needs a *.sln Solution-File as Root Component. From this point Visual Studio looks at your Project. An example would, if you copy File in your Project Folder, they wouldn't be recognized from Visual Studio. You have to add them first to your sln File, to see them. It also allows the developer to combine multiple projects (*.csproj,..) into one single Solution to build.
This means the idea behind these two editors is completely different.
Visual Studio (not code) Project-types for Web
There are Node.js Tools for Visual Studio
This will provide Node.js built-in project templates
Visual Studio 2015 comes with TypeScript templates
Workaround 1
A workaround would be a Blank Solution in which you set up your Visual Studio Code Project.
Workaround 2
Another trick would be the answer to this question. You can open your Project Folder as a Website Project.
File -> Open Website -> File System and choose the folder
Update
As you mentioned, there will be errors because Visual Studio tries to build the solutions. For the next few readers of this response, the work around for this (as John Pankowicz writes in the comment) is:
Right-click Web Site in Solution Explorer -> Property Pages -> Build -> Uncheck "Build Web Site as part of solution"
Update 2
(Thanks to JC1001 for this update)
The next version of Visual Studio (Visual Studio "15") will support opening a folder. This is mentioned in the Visual Studio Blog.
Also like in Visual Studio Code, there will be a prompt command for opening Folders. Right now you can use this in the preview version:
devenv /command “file.openfolder FOLDER_PATH”
In the future you will be able to use:
devenv FOLDER_PATH
Opinion
Personally I wouldn't recommend Visual Studio (not code) for HTML/Website projects without server-side-development, because I don't see any features. Even the intellisense suggests to me sometimes bad HTML Code (it's not the IDE's fault).
After all web projects are still text files. You can easily control group projects like this with Version Control. Visual Studio Code even provides an integrated Git support.
Visual Studio Code does not create "project files" that you can open in Visual Studio 2015. Basically, when you open up a Node website in Visual Studio, you need to re-create the folder structure in VS2015 and create a "project file".
I haven't seen any better ways of doing this, but will be happy when we can open a folder just as easilly as we can with VSCode
I'm sure it's not the best way but..
Open an existing .sln with notepad, change the names, save as [name of your project].sln.
Open with Visual Studio.

What determines the default startup project?

I have a open source project that include Visual Studio project files. There is a solution file with four projects files. When the source files are distributed and unpacked, Visual Studio picks the wrong project as the default project. New users don't know they need to right click a certain project, and then select Set as Startup Project.
I've tried re-ordering the projects in the solution file so the appropriate project is first, and I tried changing the UUID on the appropriate project so its the lowest. Neither have helped with the problem of Visual Studio selecting the wrong startup project.
The Visual Studio versions I test against are Visual Studio 2005, 2008, 2010, 2012, 2013 and 2015.
What determines the default startup project?
What can I do to ensure Visual Studio selects the correct startup project?
A related question is Why is “Set as Startup” option stored in the suo file and not the sln file?, but it asks "Why..." and does not ask "How To...".
If there is a *.suo file, the Startup Project is saved there.
Otherwise, the first project listed in the *.sln file will be the Startup.
(tested with VS 2013)

Remove missing files in Visual Studio 2013

Is there a quick way to remove only files that are missing in a Visual Studio project? So files that are no longer accessible that were either deleted or moved outside of Visual Studio.
It sounds like you've physically deleted a file that an MSVS project still "remembers".
You can probably just select and delete the project items in question in the MSVS IDE.
Personally, I'd just edit the project file (e.g. "myprog.csproj") in Notepad.

Visual Studio needs to make non-functional changes to this project

I have a visual studio solution with a a vs2010 project
Everytime I open it I got this warning.
Visual Studio needs to make non-functional changes to this project in
order to enable the project to open in this version and Visual Studio
2010 SP1 without impacting project behavior.
ANd it generates some xml log files
I need to definitely convert it to vs 2012
How can I do that without breaking anything else?
I was able to solve it by opening the .csproj file and changing this
<FileUpgradeFlags>0</FileUpgradeFlags>
for this
<FileUpgradeFlags></FileUpgradeFlags>

Resources