nie*_*ras 3 c# msbuild il visual-studio-2010 embedded-resource
我在命令行上使用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\Properties\Resources.Designer.cs:第87行
我已将问题跟踪到生成的IL(我使用ildasm).在Visual Studio中进行扩展时,在程序集的清单中设置以下内容:
.mresource public <PROJECTNAME>.Properties.Resources.resources
{
// Offset: 0x00000000 Length: 0x00000236
}
Run Code Online (Sandbox Code Playgroud)
但是在使用MSBuild构建时会生成以下输出:
.mresource public '../..//Build/<PROJECTNAME>_AnyCPU_Debug_Obj/<PROJECTNAME>.Properties.Resources.resources'
{
// Offset: 0x00000000 Length: 0x00000236
}
Run Code Online (Sandbox Code Playgroud)
因为可以看到资源的路径突然成为资源名称的一部分.
有没有人有任何想法如何解决这个问题?
似乎将LogicalName添加到项目文件中修复它:
<LogicalName>$(RootNamespace).Properties.Resources.resources</LogicalName>
Run Code Online (Sandbox Code Playgroud)
即所以项目文件中的嵌入资源条目如下所示:
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<LogicalName>$(RootNamespace).Properties.Resources.resources</LogicalName>
</EmbeddedResource>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
详细信息请参阅:http://blogs.msdn.com/b/msbuild/archive/2007/10/19/manifest-resource-names-changed-for-resources-files.aspx
请注意,我们使用的是.resx文件,但仍然会出现错误.
归档时间: |
|
查看次数: |
4715 次 |
最近记录: |