2012-04-04 59 views
1

我有一个vb.net项目,它有2个构建的exe以及安装程序。这两个exe共享一堆通用文件。我不想拥有两个通用文件副本,或者混淆了构建复制事件的事件(如果可能)。带有公共文件的VS2010项目

我的方法是在同一个文件夹中创建两个项目,并让它们指向他们需要的文件。这似乎工作,直到我试图编译这两个应用程序,我在一个名为Application.Designer.vb的文件中出现错误。看起来项目文件在他们的文件夹中创建了这个文件,当我在同一个文件夹中有两个解决方案时它们发生冲突。

所以我的下一个努力是在它自己的文件夹中创建第二个项目,并根据需要添加项目。这里的问题是VS2010没有链接到不同文件夹中的文件,它将文件复制到新的项目文件夹。

什么是vs2010的方法来完成这件事?

回答

3

当您创建第二个项目时,您几乎就在那里。您不需要将文件添加到第二个项目中,而需要链接它们。

当您添加它们时,VS会将源文件复制到当前项目的目录中。

链接文件时,会将其保留在当前位置,并且只会将文件的引用添加到项目中。这意味着您正在使用单个源文件而不是多个副本。

要链接的文件时,请从Project菜单Add Existing Item...菜单项,选择您要链接的文件(S),然后点击旁边的Add按钮上的文件对话框的下拉箭头,选择Add As Link

我们在六个项目中共享此类文件,包括Win Forms,Silverlight,ASP.Net,Services和PocketPC。

+0

这正是我一直在寻找的。我不知道添加按钮可以变成屏幕上的链接按钮。我花了几分钟才让一切正常工作。谢谢! – Hucker 2012-04-05 06:33:44

+0

文件夹怎么样?我的意思是我有很多像图片一样的共享资源 – maxisam 2012-08-22 15:29:55

+1

@maxisam:在这种情况下我通常会做的事情实际上是将所有资源添加到共享DLL中,然后在所有需要它的应用程序之间共享。 – 2012-08-22 16:01:07

3

最简单的解决方案是将所有常见的东西都推送到一个通用项目中,并简单地从其他两个解决方案中引用该项目。

  • 溶液A:
    • 项目A
    • 项目C
  • 溶液B:
    • 项目B
    • 项目C

无论如何只是我的推荐。

+0

我想我不明白这可以帮助我,除非你说我应该建立通用文件到一个DLL项目,并将该DLL包括到每个项目中。我认为这是可能的,但看起来很麻烦,看起来很简单......将文件放在不同的文件夹中。如果这是最好的解决方案,那么我需要重新思考我在做什么。谢谢! – Hucker 2012-04-04 00:48:34

+0

@Hucker - 基本上是。你可以在技术上通过使它们“链接”文件共享文件,但这也可能是混乱的。在我看来,一旦你开始拥有不止一对**共享**资源,你需要一个DLL项目。它不一定是混乱的...特别是如果这意味着你的工作量比你现在做的要少;) – Josh 2012-04-04 01:10:39