Can't add .tsx files to Node.js Web Application project - visual-studio

I created a new Blank Node.js Web Application in Visual Studio 2015, and I'm unable to add .tsx files to my project and compile them. When I do so, the created .tsx file is put into a Virtual Project instead, even though it is present in the actual project as well. The project is set to compile JSX expressions as React calls.
It took me some time to track down what's happening behind the scenes, and what happens is that when a .tsx file is created in the project (through Add -> New File), it is created as a Content entry in the project's XML file, instead of a TypeScriptCompile entry. This is clearly an error.
I can fix the issue by manually editing the project's XML file, but no way I'm willing to do that for actual production in 2016, with hundreds of files.
Step-by-step guide to reproduce the error
Create a new Blank Node.js Web Application project
Create a new .ts file in the new project
Create a new .tsx file in the new project
See that the displayed "host project" of the .tsx file (check the top-left corner of the editor window) says "TypeScript/JavaScript Virtual Projects".
How can I make it so that .tsx files are included in the project exactly how .ts files are?
Edit
This is not a problem with a HTML Application with TypeScript project, but that project type contains a lot of unnecessary C# bloat that I don't need.

I can fix the issue by manually editing the project's XML file, but no way I'm willing to do that for actual production in 2016, with hundreds of files.
This has to do something with the project template, and is likely a bug. A possible workaround in the meantime is creating the new file as a .ts file, and then renaming it to .tsx.

Related

XNA - Reconnecting Content Project

I'm working with XNA 4 in VS2010. Recently a crash corrupted a .contentproj file of mine. So I deleted the content project inside VS, created a new one and repopulated it with the contents of the old one. However the new content project did not properly hook up to the rest of the program, whenever I build the program its contents aren't translated to .xnb-s and placed inside the content folder of the game as when I built the program with the original content project.
I'm sure I'm missing a step in reconnecting the new content project, I just can't seem to be able to find out what that step is. Any ideas?
Thank you.
Take a look at the properties of the imported files in Visual Studio and check they are correct. Check the Build Action specifically. It should be set to Compile.
I found a way to make it work. More a workaround than a solution, I created a new VS solution, imported everything other than the content project from the old one and used the content project that came with the new solution.

Visual Studio Project: Properties/Settings.settings Missing

I've checked out a solution from source control and opened it in Visual Studio. My assumption is that this solution compiled at one time (two years ago) and was deployed.
There is a project that contains datasets which I will call the "dataset project". The datasets have connection strings defined in the InitConnection() method in Designer.cs files that are looking for a Properties namespace.
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
private void InitConnection() {
this._connection = new global::System.Data.SqlClient.SqlConnection();
this._connection.ConnectionString = global::<some namespace>.Properties.Settings.Default.<some connectionStringName>;
}
In Solution Explorer, I see a Settings.settings file that appears to be "missing." Indeed, the Properties folder is empty when I check it's contents. The missing settings are compile errors in each dataset.
I've attempted to set the connection strings of the datasets to None, but it tries to save the new value to the .settings file, which fails with a "Warning 22 The custom tool 'SettingsSingleFileGenerator' failed while processing the file 'Properties\Settings.settings'.
" message -- ostensibly because the .settings file is missing.
A little more digging reveals a full compliment of connection strings found in another project which references the dataset project. But the dataset project does not (circularly) reference this other project and would have no way to use its connection strings that I'm aware of.
Can the .settings file be regenerated for the dataset project? Any reason why someone would delete .settings in the first place?
Thanks!
Figured it out.
I used Visual Studio to delete the phantom Settings.settings file under the Properties folder (the "phantom" file icon that the project thinks should be there because it's listed in the .csproj file). Then I opened the project Properties and went to the Settings tab. Visual Studio prompted me to create a new settings file. I happily obliged, and VS automagically imported the settings from app.config.
So it seems there is a way to regenerate the Settings.settings.

What causes a duplicate web.config under the obj output folder after publishing an MVC3 app?

Often after publishing my MVC3 app, using a file system publish, when I next try to run the app in the VS2010 debugger, I get the error: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. I get this because my web.config file has been duplicated in a folder called obj\debugrelease\package\packagetmp\web.config, where debugrelease is the name of the build config I am publishing to. Simply deleting the whole obj folder solves this issue, but I'm annoyed that it happens and can't help wondering what is wrong.
Have you tried the following?:
Looking at project properties >> Package/Publish Web tab to see if there is anything not set quite right, for instance I have "Deploy only files needed to run this application".
Showing all files in your project to make sure you haven't got web.config files hiding somewhere other than your obj folder.
Opening your project file in a text editor to see if the config is referencing a web.config file somewhere it shouldn't?

How do you dissasociate a single file in a VS2010 project which is under source control from source control iteself?

We have a project (C#) which has been added to source control (TFS 2010), however one of the project files is anauto generated one and as such we dont want it under source control.
Is there a way to remove the source control association for this single file in the project?
Please note the autogenerated file is made from a custom XML document using an internal standalone tool. Whilst I appreciate a long term solution to this issue would be to not have the file linked to the project, but to include the source XML document and have it associated with an appropriate custom tool to generate the C# file at build time. Sadly creating said custom tool is not going to happen in my immediate future hence the query about dissacociating the generated file that is in the project from the projects TFS source control.
Open up the project and select the file.
On the VS menu go to: File -> Source Control -> Exclude FILE_NAME From Source Control

Visual Studio Copy Project

I would like to make a copy of my project. I would rather not start doing it from scratch by adding files and references, etc. Please note that I don't mean copy for deployment. Just plain copy.
Is there a tool in VS to do this? I am using VS 2008
Just create a template;
From your project choose: Project - Export Template
The wizard will let you define
Template name
Template Description
Icon
Preview image
Then it zips up your project into 'My Exported Templates' directory.
You also have the option to make your template available when you create a new project.
When you use your template to create a new project, the namespace will be correct for 'your_new_project_name' throughout every file, all references correct, everything perfecto :)
You can send the .zip file to anybody, and they must copy (not unzip) the .zip file into Templates\ProjectTemplates directory for them to use too.
I made an ASP.NET MVC template with folders, layout page, viewmodels etc arranged just how I like them.
NOTE:
If you have an empty folder in your project, it WON'T be added to the template, so I just added an empty class appropriate to each folder, and a sample picture for images folder.
If you want a copy, the fastest way of doing this would be to save the project. Then make a copy of the entire thing on the File System. Go back into Visual Studio and open the copy (by right clicking on solution => add existing project => open the copied project). From there, I would most likely recommend re-naming the project/solution (Steps of Safely Renaming Project are in the following link) so that you don't have two of the same name, but that is the fastest way to make a copy.
It is highly NOT ADVISABLE to copy projects at all because the some config files formed internally like .csproj, .vspscc etc. may (and most probably will) point to references which belong to previous solutions' location and other paths/locations in system or TFS. Unless you are an expert at reading these files and fixing references, do not try to copy projects.
You can create a skeletal project of the same type you intend to copy, this creates a proper .csproj, .vspscc files. Now you are free to copy the class files,scripts and other content from the previous project as they will not impact. This will ensure a smooth build and version control (should you choose to be interested in that)
Having said all this, let me give you the method to copy project anyhow in a step-wise manner:
Go to the project you want to copy in solution explorer and right-click.
Now select 'Open Folder in File Explorer' (Assuming you have the solution mapped to a local path on your disk).
Select the Projects you want to replicate as whole folders(along with all dependencies,bin .vspscc file, .csproj file)
Paste them in your desired location (it could be your same solution folder or even another solution folder. If it is within the same solution folder, then you would be required to rename it, also the .csproj and other internal files to the new name).
No go back to Visual Studio, Right-Click on Solution > Add > Existing Project...
Browse and select the Project file (.csproj file) now from the location you placed it in and select 'open'
This file now appears in the solution explorer for you to work.
You may now have to resolve a few build errors probably with duplicated/missing references and stuff but otherwise it's as pristine in logic and structure as you expected it to be.
I guess if this is something you do often, there's a little (non-free) utility that promises to do it for you: I haven't used it, so not sure how good it is:
http://www.kinook.com/CopyWiz/
There is also this project on CodePlex:
http://clone.codeplex.com/
I will probably give the codeplex project a try, and if it doesn't work I'll manually rename everything and edit the sln file.
I follow these steps and I use the development tool called Resharper ,which is awesome by the way:
So,
Copy the existing project folder to the destination you want
Go to source control and with right click just to the root folder you want and pick "Add items to folder...".Then, a wizard will come up to choose the files to copy (there is no need for some files and the wizard guides you for that reason by default).
Change the name of the solution file (*.sln)
Change the names of the sub-projects if exist.
Use Resharper to change the binding namespaces name (I will automatic do the dirty job with safety).The alternative way is to manually change all namespaces with the new name.
The same action with method names.
Check solution's properties if you want to change.
That's it. You are ready!!!
Following Shane's answer above (which works great BTW)…
You might encounter a slew of yellow triangles in the reference list.
Most of these can be eliminated by a Build->Clean Solution and Build->Rebuild Solution.
I did happen to have some Google API references that were a little more stubborn...as well as NewtonSoft JSon.
Trying to reinstall the NuGet package of the same version didn't work.
Visual Studio thinks you already have it installed.
To get around this:
1: Write down the original version.
2: Install the next higher/lower version...then uninstall it.
3: Install the original version from step #1.
The best way is actually to create a new Project from scratch, then go into the folder with the project files you want to copy over (project, form1, everything except folders).
Rename the files (Except for form1 files) for example: I copied Ch4Ex1 files into my Ch4Ex2 project but first renamed the files to Ch4Ex2.
Copy and paste those files into the Solution Explorer for the new project in Visual Studio.
Then just overwrite the files and you should be good to go!
Old thread but I hope it helps anyone looking for this answer!
The easiest way to do this would be to export the project as a template and save it to the default template location. Then, copy the template into the exact same directory on the location you want to move it to. After that, open up visual studio on the new location, create a new project, and you will get a prompt to search for a template. Search for whatever you named the template, select it and you're done!
I have a project where the source files are in in a folder below the project folder. When I copied the project folder without the source folder and opened the copied project, the source files are not missing but found at the old location. I closed the project, copied also the source folder, and re-opened the project. Now, the project magically references the copied source files (both the new path showed up on "save as" and a change in a file has been saved in the copied version).
There is a caveat: If not both old and new project folders are below a used library folder, the above-mentioned magic discards also the absolute reference to the library and expects it under the same relative path.
I tried this with VS Express 2012.
My solution is a little bit different - the computer that the package resided on died and so I was forced to recreate it on another computer.
What I did (in VS 2008) was to open the following files in my directory:
- <package name>.djproj
- <package name>.dtproj.user
- <package name>.dtxs
- <package name>.sln
- Package.dtsx
When I did this a popup window asked me if the sln file was going to be a new solution and when I clicked 'yes' everything worked perfectly.
After trying above solutions & creating copy for MVC projects
For MVC projects please update the port numbers in .csproj file, you can take help of iis applicationhost.config to check the port numbers. Same port numbers will cause assembly loading issue in IIS.
I use Visual Studio 2013 where Project > Export Template is not an option. Here is what I use to clone a project.
From your solution:
File > Export Template > select project to make template from, note save path
Download and install VS 2013 SDK Here
Create new VSIX project under Extensibility
From the VSIXManifest Dialog select the Assets tab
Fill in the Author textbox
Choose "Project Template" for Type and Browse to add the exported template (saved at path you noted in step 1)
Save and build the VSIX project. Go to the VSIX project's .../bin/Debug folder and double click to run the .vsix file
Start new instance of Visual Studio and you should see your template under whatever project type your template is. Create a new project from your template
You will have to re-add any dll references
Trick the Clone from repository tool
Open the project location in file explorer.
Copy the path to any browser (aka open the project location in the browser).
Use the address from the browser as the source repository for cloning.
Relax and enjoy the no error clone.

Resources