我们正试图让我们的C#应用程序编译并运行两者
但是,.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
元素之外。)
答案 0 :(得分:3)
与此同时,我研究了几种处理这种情况的方法。
例如,it is apparently possible添加Condition
属性值为$(VisualStudioVersion) != ''
,以使它们以Visual Studio是否正在使用为条件。
然而,一时兴起(在阅读this answer之后)我尝试了一些完全不同的东西:我替换了我的嵌套命名空间
namespace Baz
{
namespace Bar
{
[...]
}
}
带有虚线命名空间表示法:
namespace Baz.Bar
{
[...]
}
和voilà,即使使用原始MissingManifestResourceException
条款,DependentUpon
也不再存在。
问题解决了,但我不知道为什么。