Csharp/C#教程:使用MSBuild构建后运行测试时出现MissingManifestResourceException(.mresource在清单中有路径)分享


使用MSBuild构建后运行测试时出现MissingManifestResourceException(.mresource在清单中有路径)

我在命令行上使用MSBuild的构建服务器上的C#项目的嵌入资源有问题。 在Visual Studio中构建和运行测试时,该项目工作得很好,但是当从命令行运行MSBuild时,运行测试时会出现以下问题:


System.Resources.MissingManifestResourceException:找不到适合指定文化或中性文化的任何资源。 确保“.Properties.Resources.resources”在编译时正确嵌入或链接到程序集“”,或者所有所需的附属程序集都是可加载和完全签名的。

System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture,Boolean)中的System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo文化,Dictionary`2 localResourceSets,Boolean tryParents,Boolean createIfNotExists,StackCrawlMark和stackMark)中的System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)位于System.Resources.get_SomeResource()的System.Resources.ResourceManager.GetString(String name,CultureInfo culture)的System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture,Boolean createIfNotExists,Boolean tryParents)中的createIfNotExists,Boolean tryParents,StackCrawlMark和stackMark in Properties Resources.Designer.cs:第87行


我已将问题跟踪到生成的IL(我使用ildasm)。 在Visual Studio中进行bulding时,在程序集的清单中设置以下内容:

.mresource public .Properties.Resources.resources { // Offset: 0x00000000 Length: 0x00000236 } 

但是在使用MSBuild构建时会生成以下输出:

 .mresource public '../..//Build/_AnyCPU_Debug_Obj/.Properties.Resources.resources' { // Offset: 0x00000000 Length: 0x00000236 } 

因为可以看到资源的路径突然成为资源名称的一部分。

有没有人有任何想法如何解决这个问题?

似乎将LogicalName添加到项目文件中修复它:

 $(RootNamespace).Properties.Resources.resources 

即,项目文件中的嵌入资源条目如下所示:

   ResXFileCodeGenerator Resources.Designer.cs $(RootNamespace).Properties.Resources.resources   

详细信息请参阅: http : //blogs.msdn.com/b/msbuild/archive/2007/10/19/manifest-resource-names-changed-for-resources-files.aspx

请注意,我们使用的是.resx文件,但仍然会出现错误。

上述就是C#学习教程:使用MSBuild构建后运行测试时出现MissingManifestResourceException(.mresource在清单中有路径)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1016739.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐