VS/C# 等价于 Java/Eclipse "resource folder"?
VS/C# Equivalent of Java/Eclipse "resource folder"?
在 Eclipse IDE 中使用 Java 时,可以使用“库”选项卡中的“添加 Class 文件夹”选项将文件夹添加到“构建路径”,这允许该文件夹中的资源在应用程序的 jar 文件中编译,而不是在外部或根本不编译。
.
有了这个,就可以通过Class.getResource(String name)
方法获取文件夹内的资源作为URL。我已经知道 C# 的等价物:Assembly.GetManifestResourceStream(string name)
或 Assembly.GetManifestResourceInfo(string resourceName)
方法,但我不知道 C# 在 Visual Studio 中的“构建路径”等价物(如果您想知道,我使用的是 2019 ). 有人可以解释一下我将如何在 C# 中完成 Java 的构建路径资源文件夹吗?
(请注意,我正在创建一个资源文件夹,其中放入该文件夹的任何内容都将被视为应用程序资源。我不是在寻找一种单独添加一个或多个资源文件的方法。 )
如有任何回复,我们将不胜感激! :)
您只需创建一个文件夹并根据需要命名即可,例如'Resources'。在其中添加任何您希望被您的应用程序视为资源的文件。
然后导航到每个资源文件的属性(您可以按 F4),在菜单中您可以选择希望编译器对该文件执行的操作(编译操作选项名称,如果我没记错的话)。您可以 select 作为资源的类型、名称空间(您的构建路径)以及您是否希望每次编译应用程序时都复制该文件,等等。
经过一番研究,我找到了解决这个问题的方法。事实上,这个问题有 两个 可能的解决方案。
.NET 核心解决方案
第一步涉及编辑 C# 项目的 .csproj
文件。此解决方案仅在 .Net Core 中可用。
您可以将此代码片段添加到您的文件中,并将 {PATH_TO_RESOUCE_FOLDER_HERE}
文件夹更改为您想要的文件夹。
<ItemGroup>
<EmbeddedResource Include="{PATH_TO_RESOUCE_FOLDER_HERE}\**" />
</ItemGroup>
现在,放置在该文件夹中的任何项目都将被视为嵌入资源 Assembly.GetManifestResourceStream(string name)
方法。
常规 .NET 解决方案
第二种方法涉及使用 .resx
文件来封装您的所有资源
在 Visual Studio 2019 中,您可以通过右键单击项目中要将文件添加到的位置来创建 .resx
文件,然后导航至 Add > New Item
(您也可以按 Ctrl+Shift+A
)。您现在可以导航到引用“资源文件”和 select 的项目。您现在可以使用此 GUI 来插入您的资源(要获得更深入的解释,请单击 this or this link. For use cases, see this MSDN)。
The "Resources File" option
请注意,此解决方案也适用于 .NET Core。
我希望这个回答对你和我一样有帮助! :)
在 Eclipse IDE 中使用 Java 时,可以使用“库”选项卡中的“添加 Class 文件夹”选项将文件夹添加到“构建路径”,这允许该文件夹中的资源在应用程序的 jar 文件中编译,而不是在外部或根本不编译。
有了这个,就可以通过Class.getResource(String name)
方法获取文件夹内的资源作为URL。我已经知道 C# 的等价物:Assembly.GetManifestResourceStream(string name)
或 Assembly.GetManifestResourceInfo(string resourceName)
方法,但我不知道 C# 在 Visual Studio 中的“构建路径”等价物(如果您想知道,我使用的是 2019 ). 有人可以解释一下我将如何在 C# 中完成 Java 的构建路径资源文件夹吗?
(请注意,我正在创建一个资源文件夹,其中放入该文件夹的任何内容都将被视为应用程序资源。我不是在寻找一种单独添加一个或多个资源文件的方法。 )
如有任何回复,我们将不胜感激! :)
您只需创建一个文件夹并根据需要命名即可,例如'Resources'。在其中添加任何您希望被您的应用程序视为资源的文件。
然后导航到每个资源文件的属性(您可以按 F4),在菜单中您可以选择希望编译器对该文件执行的操作(编译操作选项名称,如果我没记错的话)。您可以 select 作为资源的类型、名称空间(您的构建路径)以及您是否希望每次编译应用程序时都复制该文件,等等。
经过一番研究,我找到了解决这个问题的方法。事实上,这个问题有 两个 可能的解决方案。
.NET 核心解决方案
第一步涉及编辑 C# 项目的 .csproj
文件。此解决方案仅在 .Net Core 中可用。
您可以将此代码片段添加到您的文件中,并将 {PATH_TO_RESOUCE_FOLDER_HERE}
文件夹更改为您想要的文件夹。
<ItemGroup>
<EmbeddedResource Include="{PATH_TO_RESOUCE_FOLDER_HERE}\**" />
</ItemGroup>
现在,放置在该文件夹中的任何项目都将被视为嵌入资源 Assembly.GetManifestResourceStream(string name)
方法。
常规 .NET 解决方案
第二种方法涉及使用 .resx
文件来封装您的所有资源
在 Visual Studio 2019 中,您可以通过右键单击项目中要将文件添加到的位置来创建 .resx
文件,然后导航至 Add > New Item
(您也可以按 Ctrl+Shift+A
)。您现在可以导航到引用“资源文件”和 select 的项目。您现在可以使用此 GUI 来插入您的资源(要获得更深入的解释,请单击 this or this link. For use cases, see this MSDN)。
The "Resources File" option
请注意,此解决方案也适用于 .NET Core。
我希望这个回答对你和我一样有帮助! :)