2011-02-25 312 views
7

我想两个如何做到在两个(或多个)项目之间共享资源文件?C# - 项目间共享资源文件

所以,恢复,我有三期工程:

开发项目(CF.NET),其中包括资源文件(包括所有的定义)。

我有两个其他的项目是空的,但连接到开发项目,每次只是一个不同的构建,所以当我修改开发项目时,所有三个项目也都进行了更新。 (修改csproj文件。)

问题是,那么资源文件呢?当我尝试从开发项目访问时,我获得所有资源,但是当我从其他两个人尝试时,它会抛出“MissingManifestResourceException”。

任何想法如何解决这个问题?

谢谢。


[编辑]

这里是我做了什么:

创建一个名为 “RealProject” 项目,该项目包含了所有代码(包括资源文件) 创建一个名为项目“ LinkedProject“(其中不包含任何内容)(我删除了所有文件并将其修改为以下文件的csproj文件:

<ItemGroup> 
    <Compile Include="..\RealProject\**\*.cs" /> 
    </ItemGroup> 

所以在LinkedProject目录我只已经:

  • [指南]斌
  • [指南] OBJ
  • [文件] LinkedProject.csproj

整个LinkedProject使用RealProject文件,它只是一个不同的配置构建(请参阅此处了解原因:C# - Code compiler for .NET & CF.NET

一旦进入该配置,我就无法访问资源文件fr om RealProject ...

如果您需要屏幕或更详细的解释,只需询问。


[编辑]

有了这个代码,它的工作原理,资源管理器没有装上良好大会的名称,但它应该存在一个更好的解决方案!

Assembly ass = Assembly.ReflectionOnlyLoadFrom(@"..\..\..\RealProject\bin\Debug\RealProject.dll"); 
ResourceManager manager = new ResourceManager("RealProject.Properties.Resources", ass); 

[解决方法]

检查事项:

  • 的LinkedProject一样 的命名空间中RealProject
  • 添加资源的链接
  • 清洁所有您的解决方案
  • 重建它

测试!

回答

7

尝试将资源文件as a link添加到其他两个项目,并确保项目文件中定义的名称空间相同。

+0

首先尝试一下,不起作用。 (我的另外两个项目已经链接到第一个项目!) – 2011-02-25 15:47:40

+0

你说的是什么意思,这些项目是链接的? – 2011-02-25 15:48:27

+0

请参阅我的编辑;) – 2011-02-25 16:00:02

1

尝试将其他项目中的现有文件添加为链接。

+0

首先尝试一下,不起作用。 (我的另外两个项目已经链接到第一个!) – 2011-02-25 15:47:12