如何为子目录中的 C# 文件编写 DependentUpon 子句?
Posted
技术标签:
【中文标题】如何为子目录中的 C# 文件编写 DependentUpon 子句?【英文标题】:How to write DependentUpon clauses for C# files in subdirectories? 【发布时间】:2013-09-26 21:53:56 【问题描述】:我们正在尝试让我们的 C# 应用程序编译和运行 both
Visual Studio 10(带有 Microsoft 编译器)、Windows 和 在 Linux 上使用 gmcs 进行 MonoDevelop但是,.csproj
文件中的类似部分(对于 Visual Studio):
<Compile Include="Foo\Bar.cs" />
<EmbeddedResource Include="Foo\Bar.resx">
<DependentUpon>Bar.cs</DependentUpon>
</EmbeddedResource>
在它们与 MonoDevelop/gmcs 一起工作之前必须进行如下更改 (如果没有,在运行时,resources.GetObject() 会抛出一个MissingManifestResourceException):
<Compile Include="Foo\Bar.cs" />
<EmbeddedResource Include="Foo\Bar.resx">
<DependentUpon>Foo\Bar.cs</DependentUpon>
</EmbeddedResource>
如何将其重写为他们都接受的形式?
(当然,没有删除DependentUpon
元素。)
【问题讨论】:
【参考方案1】:与此同时,我研究了几种处理这种情况的方法。
例如,it is apparently possible 添加具有值 $(VisualStudioVersion) != ''
的 Condition
属性,以使它们以是否使用 Visual Studio 为条件。
但是,一时兴起(在阅读 this answer 之后)我尝试了一些完全不同的方法:我替换了嵌套的命名空间
namespace Baz
namespace Bar
[...]
带点命名空间符号:
namespace Baz.Bar
[...]
并且瞧,MissingManifestResourceException
不再存在,即使是原来的DependentUpon
子句。
问题解决了,但我不知道为什么。
【讨论】:
以上是关于如何为子目录中的 C# 文件编写 DependentUpon 子句?的主要内容,如果未能解决你的问题,请参考以下文章