2013-08-29 43 views
3

我有一个在Visual Studio 2010 Ultimate中创建的C#解决方案,其中包含多个使用相同结构,类和枚举类型的项目。我创建了一个包含所有这些项目的.cs文件,但目前我必须为每个项目制作一个这个文件的副本。这显然并不理想,因为我必须记得在更改或添加文件时更新每个副本。如何在多个项目中引用TFS项目

有没有办法让所有的项目都只引用这个文件的一个实际副本,这样我只需要更新一次,其他所有项目都可以看到这个更新?我的一位同事告诉我可以在TFS中做某种“符号”参考,但由于我不知道这个特征的名称是什么,我不知道如何进一步研究它。

这个question有答案,建议创建一个类库或在添加现有项目时使用“添加为链接”。我想我可以在不使用TFS的情况下在Visual Studio中执行此操作,但我已将其作为特定于TFS的问题提出。当TFS被使用时,这个“添加为链接”选项会起作用吗?还是我必须在TFS中做一些事情才能使链接引用符合条件?

+0

有多可笑。我为这个问题赢得了“热门问题”徽章,但还没有得到一个单一的upvote! – gonzobrains

回答

3

“添加链接”选项肯定适用于TFS。你不必为此做任何特定的事情。 “添加链接”是项目特定的,它会在您的项目文件中添加一个新条目,指定您的.CS文件的位置。只要在构建服务器期间文件在特定位置可用,就没有什么可担心的。确保添加链接生成文件的相对路径,而不是绝对路径。

在我的公司,我们有一个解决方案中的多个项目,我们共享一个“Assemblyversion.cs”用于所有项目,这样我就不需要在多个文件中编写版本信息。我们已经使用了添加链接,它效果很好!

+0

如果您使用TFS项目中的“添加链接”添加到不在TFS中的项目,会发生什么? – gonzobrains

+0

你的意思是一个不在TFS中的文件?如果您在项目中添加了“.cs”文件,并忘记将该.cs文件签入TFS,那么您的服务器版本(以及其他开发人员机器中的版本)将失败,指出无法找到.cs文件。如果您在项目中添加链接文件,并且它不在TFS中,那么同样的方法,那么构建将会失败。 – Isaiah4110

+0

我测试过这个方法,效果很好。只需要清楚,在第一个项目中,使用解决方案资源管理器添加新项目。然后签入此项目。然后在第二个项目中,从解决方案资源管理器中选择添加现有项目,然后浏览到第一个项目,然后确保在“添加为链接”对话框中选择下拉选项。现在这由TFS源代码管理进行管理。这适用于VS 2013 Ultimate和TFS 2010后端。 – subsci

相关问题