我有一个 C# 项目。我已将 NameSpaceDeclarationSyntax 例如 namespace1 重命名为 namespace2 。 当我使用 Visual Studio 和 roslyn api 编译这个项目时,我发现 Visual Studio 已经嵌入了带有命名空间2的项目的所有资源,只是属性文件夹中的资源文件嵌入了项目的默认命名空间。
我已经用 roslyn 嵌入了带有命名空间2的所有资源,因此它无法运行。
抛出以下异常:
找不到任何适合特定文化或中立文化的资源。确保namespace1.properties.Resources.resources正确嵌入或链接到程序集“程序集名称”中...
我必须更改项目的默认命名空间或获取默认命名空间并嵌入它,但我不知道如何查找或更改项目的默认命名空间?
默认命名空间是 MSBuild 和 Visual Studio 的属性,而不是编译器本身的属性。因此,您不会在 Roslyn API 中找到它。
相反,您可以直接在项目文件中更改
<RootNamespace>
元素。
您可以在此处了解 Roslyn 的 Visual Studio 层如何获取默认命名空间。