Visual Studio 2015 new files not being added to so

2019-01-17 07:00发布

问题:

I have just upgraded to VS2015 and I am experiencing an issue I have not seen before. Using an existing solution under source control, I am able to modify files and they get picked up as pending changes ready to check in to TFS.

However, I add a new file (Test.cs as an example in this screenshot), it is not picked up as a new file.

I am required to right-click it and click "Add files to Source Control"

This has never been an issue before. I would like everything I add as a new file to be picked up as a pending change. How can I make this happen? I have not seen this before in previous Visual Studio versions.

I can confirm that this issue is the same on another machine. Also, the new file is not picked up in "Promote Candidate Changes" either.

If I then click "Add file to Source Control", I get this message.

"The selected file is ignored. Add it to source control anyway?"

My .tfignore file just has a directive to ignore packages, so I don't think this file is the problem.

How can I get my settings back on track?

UPDATE:

I have noticed that this only happens to the "Release" branch of my workspace. All other branches behave as expected. Furthermore, if I then take a branch "Release" and call it "Release1", the issue goes away entirely!

Do branches with the specific name "Release" take on any special functionality in TFS?

回答1:

Folders called Release and their contents is automatically excluded from TFS (along with Debug and lots of file types). You can override this for particular folders by creating a .tfignore file, as detailed in the "Customize which files are ignored by version control" section of this link

Customize which files are ignored by version control

By default certain types of files (for example, .dll files) are ignored by version control. As a result:

When you add ignored files to folders that are mapped in a local workspace, they do not appear in the Pending Changes page in Team Explorer.

When you try to add ignored files using the Add to Source Control dialog box (for example by dragging them into Source Control Explorer), they automatically appear in the Excluded items tab.

You can configure which kinds of files are ignored by placing text file called .tfignore in the folder where you want rules to apply. The effects of the .tfignore file are recursive. However, you can create .tfignore files in sub-folders to override the effects of a .tfignore file in a parent folder.

.tfignore file rules

The following rules apply to a .tfignore file:

# begins a comment line

The * and ? wildcards are supported.

A filespec is recursive unless prefixed by the \ character.

! negates a filespec (files that match the pattern are not ignored)

.tfignore file example

Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA*.cpp

Ignore .txt files in this folder
*.txt

Ignore .xml files in this folder and all its sub-folders
*.xml

Ignore all files in the Temp sub-folder
\Temp

Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll



回答2:

We were also experiencing this issue but in our case it was because we had folders that ended in ".Lib". Figured it out from this SO question: Visual Studio 2015. Files not added to TFS



回答3:

We have the same issue because of a branch called 'Release'. But the issue is only at Visual Studio 2015 Update 3. Using Visual Studio 2015 Update 2, everything is ok. So Visual Studio Update 3 must have been changed its behaviour. It would be useful to return to its old behaviour.



回答4:

Add a .tfignore file to the release folder containing the extensions you want it to not ignore:

!*.vb

I tried adding this to the .tfignore that existed in my solution folder and it didn't help. It only worked when I added one to the parent release folder.

..\Release
..\Release\.tfignore <-- this one
..\Release\SolutionA\
..\Release\SolutionA\.tfignore

msdn thread on the subject