【发布时间】:2011-02-25 15:35:34
【问题描述】:
我想要两个如何在 2 个(或更多)项目之间共享资源文件?
所以,继续,我有三个项目:
包含资源文件(包含所有定义)的开发项目 (CF.NET)。
我还有两个空的项目,但链接到开发项目,只是每次构建不同,所以当我修改开发项目时,三个项目也都更新了。 (修改csproj文件。)
问题是,资源文件呢?当我尝试从开发项目访问时,我获得了所有资源,但是当我尝试从其他 2 个项目中访问时,它会抛出“MissingManifestResourceException”。
知道如何解决这个问题吗?
谢谢。
[编辑]
这是我所做的:
创建一个名为“RealProject”的项目,其中包含所有代码(包括资源文件) 创建一个名为“LinkedProject”的项目,其中不包含任何内容(我删除了所有文件并将csproj文件修改如下:
<ItemGroup>
<Compile Include="..\RealProject\**\*.cs" />
</ItemGroup>
所以在 LinkedProject 目录中我只有:
- [目录] bin
- [目录] obj
- [文件] LinkedProject.csproj
整个 LinkedProject 使用 RealProject 文件,它只是一个不同的配置构建(请参阅此处了解原因:C# - Code compiler for .NET & CF.NET)
一旦进入该配置,我就无法访问 RealProject 中的资源文件...
如果您需要屏幕或更详细的说明,请询问。
[编辑]
使用此代码,它可以工作,资源管理器没有加载到好的程序集名称上,但它应该存在更好的解决方案!!!
Assembly ass = Assembly.ReflectionOnlyLoadFrom(@"..\..\..\RealProject\bin\Debug\RealProject.dll");
ResourceManager manager = new ResourceManager("RealProject.Properties.Resources", ass);
[解决方案]
检查事项:
- LinkedProject 相同 命名空间为 RealProject
- 将资源添加为链接
- 清理所有解决方案
- 重建它
测试!
【问题讨论】: