TFS Linked Files Not Found

2019-08-02 11:46发布

I have a core project and several sub projects. I link to files in the core project for the sub ones. I righted clicked my csproj and said existing file > add > link. Here is how my project looks:

enter image description here

Here is a picture of my Windows Explorer:

enter image description here

When I check in, I receive this error:

Could not find file C:\Users\joe_a84\Documents\JMASoftware\QuickBooks\Main\Source\Platform Support\NOP\Source\Versions\nop265\Nop265\Module\QuickBooksSettings.cs

The file does not exist there because it is linked. How can I tell TFS that it's a linked file?

标签: tfs
4条回答
一夜七次
2楼-- · 2019-08-02 12:23

I faced the same problem. I just did undo on the file which was showing this error in the TFS Pending Changes window and checked-in. This undo did not remove the link that was added in the project. Make sure you do not undo the project file.

查看更多
Animai°情兽
3楼-- · 2019-08-02 12:32

Linking between files in TFS is pretty simple. You just open the "Add existing item" dialog and search for the file you want to link in your local workspace. If you would click "Add" now Visual Studio would create a copy of the file in your projects directory. What you do instead is to choose the other option (you have a little drop down menu on the button) and add the item as a link. Thats it.

查看更多
来,给爷笑一个
4楼-- · 2019-08-02 12:37

There is the following question which states that symbolic links are not supported in TFS 2008 or TFS 2010. Symbolic links in TFS 2010 Source Control?

However, I did find the following ancient blog post which seems to show how to do it for TFS 2005: http://blogs.msdn.com/b/ericlee/archive/2006/07/20/sharing-files-in-team-foundation-server.aspx

That said I would highly recommend that you simply don't do this.

If you really need to share a file between projects then you should be using the branching functionality built into TFS. Typically you don't want just a single code file due to namespace and assembly generation concerns. It is much cleaner, and certainly easier to maintain, by having a separate project for those artifacts that are passed around. This way you either branch the entire assembly project; or just refer to it in it's normal place.

查看更多
▲ chillily
5楼-- · 2019-08-02 12:42

This is a local file level linking by another project. There is only one file at a specific subfolder. Other projects can link to the file via this approach. The problem with this approach is that from TFS viewpoint, you cannot tell if a file is shared by other projects. A good practice will be to keep such files in separate folder with name like Common or Shared etc. People who have been using File linking across branches in Source Control would have to change their approach quite differently.

查看更多
登录 后发表回答