C# 共享资源VisualStudio2010

C# 共享资源VisualStudio2010,c#,visual-studio-2010,visual-studio,nancy,C#,Visual Studio 2010,Visual Studio,Nancy,因此,我有一个包含4个项目的解决方案,一个“核心”项目是实际的应用程序(作为类库),还有3个包装项目,“控制台”、“WinForm”和“服务”,它们基本上在核心类中包装了一个Facade类,并包含各种设置来处理每个不同应用程序的不同日志策略(Console/Trace/File)并将应用程序作为控制台、WinForms或服务启动,具体取决于客户希望部署应用程序的方式 在核心项目中,我有3个资源文件,其中包含Nancy web framework的简单模板视图。但是Nancy查找这些视图的方式是在

因此,我有一个包含4个项目的解决方案,一个“核心”项目是实际的应用程序(作为类库),还有3个包装项目,“控制台”、“WinForm”和“服务”,它们基本上在核心类中包装了一个Facade类,并包含各种设置来处理每个不同应用程序的不同日志策略(Console/Trace/File)并将应用程序作为控制台、WinForms或服务启动,具体取决于客户希望部署应用程序的方式

在核心项目中,我有3个资源文件,其中包含Nancy web framework的简单模板视图。但是Nancy查找这些视图的方式是在当前路径上。由于核心项目中的文件不在其他3个项目的当前路径上,我需要一种简单的方式跨项目访问这些文件

我有点天真地认为这就是“解决方案”的概念来处理项目之间的依赖关系。但是,通过搜索Internet,让我惊讶的是,似乎没有优雅的方法来做到这一点。我能找到的唯一两个解决方案是将文件复制到解决方案中的临时目录,然后将其复制到相应的所需目录(如post所示)构建操作,并使用“添加为链接”手动添加项。现在,虽然这两种解决方案在技术上都可以工作,但第一种解决方案(可能已经过时)将构建工件放在它们不真正属于的位置(IMHO),第二种解决方案冗长、耗时,并且容易出现人为错误(因为您不能只链接到目录)

这真的是我唯一的两个选择,还是因为我是Visual Studio的新手而错过了第三个完全显而易见的方法?

是一个包管理系统,我使用它在项目之间作为依赖项共享工件。您可以包括通过nuget.org提供的库,或者定义自己的nuget包

在每次构建时都能很好地支持生成nuget包,并且可以用作nuget服务器


是将文件包含到nuget包中的参考。

如果您只需要Nancy特定的内容,您可以使用Nancy中的自定义IRootPathProvider

另一个选项是链接文件夹-您可以这样做,但它涉及到对csproj文件的手动黑客攻击,这里有一些关于它的问题,包括这个问题: