我想两个如何在两个(或更多)项目之间共享资源文件?
所以,要恢复,我有三个项目:
包含资源文件的开发项目(CF.NET)(包含所有定义).
我还有两个空的项目但是链接到开发项目,每次只是一个不同的构建,所以当我修改开发项目时,所有三个项目也都会更新.(修改csproj文件.)
问题是,资源文件怎么样?当我尝试从开发项目访问时,我获得了所有资源,但是当我从另外2个人那里尝试时,它会抛出"MissingManifestResourceException".
不知道如何解决这个问题?
谢谢.
[编辑]
这就是我所做的:
创建一个名为"RealProject"的项目,其中包含所有代码(包括资源文件)创建一个名为"LinkedProject"的项目,其中不包含任何内容(我删除了所有文件并修改csproj文件,如下所示:
<ItemGroup>
<Compile Include="..\RealProject\**\*.cs" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
所以在LinkedProject目录中我只有:
整个LinkedProject使用RealProject文件,它只是一个不同的配置构建(请参阅此处了解原因:C# - .NET和CF.NET的代码编译器)
进入该配置后,我无法访问RealProject中的资源文件...
如果您需要屏幕或更详细的解释,请询问.
[编辑]
有了这个代码,它的工作原理,资源管理器没有加载好的程序集名称,但它应该存在更好的解决方案!
Assembly ass = Assembly.ReflectionOnlyLoadFrom(@"..\..\..\RealProject\bin\Debug\RealProject.dll");
ResourceManager manager = new ResourceManager("RealProject.Properties.Resources", ass);
Run Code Online (Sandbox Code Playgroud)
[解]
要检查的事项:
测试!
使用dotnet核心:.NET Core SDK版本:3.1.102
为什么以下返回 null
?
typeof(MyClassName).GetTypeInfo().Assembly.GetManifestResourceStream("MyFile.cs")
Run Code Online (Sandbox Code Playgroud)
我验证了该文件存在于解决方案中,并且在属性“嵌入式资源”中具有构建操作