运行程序时,提示有错误:此程序集中已使用了资源标识符 "Test.Searchn.resources",双击该条记录,发现提示:无法打开该文档。它已被重命名、删除或移动。
这么一个错误,导致程序无法运行。本人通过多种方式想找出bug。最终本人把问题定位到了,配置文件方面的错误。通过代码匹配软件,把该工程的工程文档进行了匹配,结果发现如下的区别。
不能启动的工程项目文件多了如下的标签。
Test.csproj
<EmbeddedResource Include="Test/Search.resx">
<DependentUpon>Search.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
Test.csproj.user
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<StartWorkingDirectory>G:/三维系统/Test/bin/Debug/</StartWorkingDirectory>
</PropertyGroup>
最后把 Test.csproj文件中多出的标签去掉,运行就可用了。
分析:
项目文件中的其他的资源都是采用的如下方式描述的。
<EmbeddedResource Include="Test.Play.resources" />
<EmbeddedResource Include="Test.Properties.Resources.resources" />
<EmbeddedResource Include="Test.ScenePropertyForm.resources" />
<EmbeddedResource Include="Test.Layer.SDBLayerCtrl.resources" />
<EmbeddedResource Include="Test.Search.resources" />
<EmbeddedResource Include="Test.SearchForm.resources" />
<EmbeddedResource Include="Test.SelectForm.resources" />
<EmbeddedResource Include="Test.SelectSearch.resources" />
<EmbeddedResource Include="Test.SimpleGeoLine3D.resources" />
<EmbeddedResource Include="Test.SimpleModelFeatures.resources" />
<EmbeddedResource Include="Test.SimplePanelLine.resources" />
<EmbeddedResource Include="Test.SimpleRegionStyle.resources" />
<EmbeddedResource Include="Test.SimpleStyleControl.resources" />
<EmbeddedResource Include="Test.StartForm.resources" />
<EmbeddedResource Include="Test.StyleControl.resources" />
<EmbeddedResource Include="Test.TitleForm.resources" />
<EmbeddedResource Include="Test.ViewControl.resources" />
<EmbeddedResource Include="Test.ViewInCar.resources" />
而我们自己的标签中却写了.resx资源,它肯定找不到。所以以后兄弟们遇见该问题采用相同的方法,说不准可以解决问题呢。