在我当前的项目中,每当我添加、更新或删除资源时,该工具都会创建一个设计器文件的副本,这会把事情搞砸。我在我的其他项目中没有看到这种行为,据我所知,我正在以相同的方式实现资源。任何人都可以阐明这种行为吗?谢谢
Visual Studio 2017
对复制的设计器文件的引用在 csproj 文件中。
您现在可以重新加载解决方案。 如果你想重新生成设计器文件:
不幸的是,我不知道是什么导致了我,但在浪费了相当多的时间之后,我找到了一个似乎对我来说没有问题的解决方法。
我只是删除了设计器文件并重新构建了我的项目。这会自动重新创建设计器文件,一切都继续正常工作。
唯一明显的区别是设计器文件的末尾现在有一个 1。
例如String.resx -> Strings1.Designer.cs
我过去一直对此文件进行断断续续的更改,没有任何问题。如果有人能解释是什么让它进入这种腐败状态,请与我们分享。
打开项目文件(使用不同的编辑器,如记事本、记事本++等)并查找类似以下内容的内容:
<Compile Include="YourResourceFilename1.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>YourResourceFilename.resx</DependentUpon>
</Compile>
将其更改为
<Compile Include="YourResourceFilename.Designer.cs">...
然后保存文件然后构建项目。您可能还需要删除文件 YourResourceFilename1.Designer.cs。
此外,可能值得在该文件中搜索 YourResourceFilename1 的任何进一步出现。问题出在 .csproj 文件中,在 .csproj 文件中,我的资源文件的最后生成的输出文件的条目是 resource2.designer.cs ..我将它更改为 resource.designer.cs 及其工作..
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources2.Designer.cs</LastGenOutput>
</EmbeddedResource>