C# Visual Studio:无法从代码访问资源
我在VisualStudio项目中添加了几个文件(HTML、CSS等)作为资源。根据MSDN,我应该能够通过C# Visual Studio:无法从代码访问资源,c#,.net,visual-studio,resources,C#,.net,Visual Studio,Resources,我在VisualStudio项目中添加了几个文件(HTML、CSS等)作为资源。根据MSDN,我应该能够通过 MyProjectName.Properties.Resources.Filename 不幸的是,IntelliSense甚至不知道MyProjectName背后的属性。如果我键入“MyProjectName.”,IntelliSense会提供一些内容,但没有属性。我已经完成了这个项目,但没有任何改变 如果这很重要:该项目不是我的Visual Studio解决方案的主/启动项目。您确定
MyProjectName.Properties.Resources.Filename
不幸的是,IntelliSense甚至不知道MyProjectName背后的属性。如果我键入“MyProjectName.”,IntelliSense会提供一些内容,但没有属性。我已经完成了这个项目,但没有任何改变
如果这很重要:该项目不是我的Visual Studio解决方案的主/启动项目。您确定它们被标记为资源吗?右键单击并检查它们的属性。您需要在此处添加它们:
现在,您可以使用
MyProjectName.Properties.Resources.Filename
来访问这些文件。我从中得到的是确保您的资源是,并且名称空间匹配。将文件作为一个资源,并将其属性设置为:
BuildAction=Compile
在VisualStudio中,有一个名为Propertieson的文件夹与Resources处于同一级别,这有点令人困惑,但它被完全忽略了 因此,虽然代码中的路径可能通过
Solution\u name.Properties.Resources.yourFile.png
进行,但这并不反映在Visual Studio的解决方案资源管理器中使用的文件夹中,因为在那里您可以直接在Solution\u name\Resources\yourFile.png下找到图像
仅仅添加一个文件并用鼠标移动资源并不能使VisualStudio在代码中找到这个文件作为资源。所以你们必须通过菜单项目,属性(最低的条目)?或者单击Alt+F7,突出显示资源
现在单击添加资源的向下钻取箭头,而不仅仅是在按钮的主区域。这样做将打开“添加新资源”的对话框窗口,但实际上您希望单击“添加现有文件”。就是这样。我知道这与答案所说的相反,但在VS2013上,我必须设置BuildAction=Resource对于其他人,请检查Resources.Designer文件 我发现这一行有出入
System.Resources.ResourceManager("DemoApp.Properties.Resources", ...
我已将项目名称更改为Demo。我不确定它是否有用,但我所要做的就是创建一个新表单并在picturebox中添加一个图标。不知何故,这解决了问题 您已将资源添加到主项目(exe)中,然后试图从另一个项目(dll)中读取它们?不,我已将它们添加到另一个项目,而不是主项目。但我只需要在另一个项目中使用这些资源。这是一个库项目,我遇到了一个类似的问题,我解决了这个问题,因为属性文件的名称空间是“Projectname.Converter.properties”,我想在其中使用资源的类的名称空间是“Projectname.Converter.XY”。这是否意味着如果我想使用资源,我只能在项目中使用一个名称空间?无法想象that@alapenoMSDN论坛链接的公认答案似乎表明,尽管他有一个问题,即他的基本名称空间不同。我所能说的就是试着改变它,看看它是否是问题所在。我只是想给你一些想法作为银行的标志,我把MSDN论坛的答案搞错了。正如您所说,basenamespace是问题所在,但在我的情况下不是。我的Resource.Designer.cs构建操作被设置为“embedded Resource”,而不是compile,也许这就是问题所在,它最终解决了works@alapeno我很高兴。嵌入式资源是一个有意义的问题,因为文件正在编译到
dll
或exe
。解决了我的问题。不允许开发人员通过右键单击资源并添加文件来访问他们的资源至少可以说是非常奇怪的,并且可能会引起很多挫折。哦,我首先认为你指的是特定的资源文件。你是说resource.designer.cs吗?这就是重点,谢谢!