使用Visual Studio 2012,我正在调试一个程序,以找出使用System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream
加载资源文件的原因。该文件正在被正确复制到项目的bin文件夹中 - 但是调用System.Reflection.Assembly.GetExecutingAssembly().Location
报告该程序没有从那里运行 - 它从C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\c37f9465\2be54367\assembly\dl3\c92e18ea\e852a1ef_ce6ad001
开始运行。
该程序是一个Web服务,错误发生在名为ConnectSystem.DLL
的DLL中(同一解决方案中的另一个项目),并且该文件位于Microsoft.NET文件夹中。
如果这是因为Dynamic ASP.NET Compilation,这看起来是最好的解释,那么有人可以想到我可以合并我的配置文件吗?
答案 0 :(得分:1)
您尝试加载的资源不应该在程序集旁边,应该将其编译到程序集中。 GetManifestResourceStream
仅从程序集本身读取资源。
您可以尝试将资源的构建操作设置为Embedded Resource
,文件最终应该在程序集中。名称可能不同,通常它具有名称空间作为前缀。您可以使用Reflector查看实际名称。