在一个C#的桌面应用项目中需添加一个与另一个项目一样的windows form。出于DRY原则,自己直接将该windows form的相关源文件添加到了项目中。自以为大功告成之际,发现在Visual Studio 2017中无法打开该form的可视化界面 - design viewer。
此问题自己之前遇到过,依稀记得需要通过手工修改项目的工程文件(.csproj)才能解决,但不记得如何具体修改。
幸好通过万能的stackoverflow找到了具体修改方法,现将该方法记录下来,供有类似问题的朋友做个参考,少走弯路、节约宝贵的人生时间。
以下以一个windows form为例,对应的源文件分别为:
HolidaysForm.cs
HolidaysForm.resx
HolidaysForm.Designer.cs
- 找到windows form文件所在项目(project)的C#工程文件,该文件以csproj结尾,一般位于项目的根目录下,且一个项目只有一个该文件。用记事本打开该文件。
- 查找windows form的cs文件名(含后缀.cs),比如HolidaysForm.cs。在内容
<Compile Include="HolidaysForm.cs">
<SubType>Form</SubType>
</Compile>
之后添加以下内容:
<Compile Include="HolidaysForm.Designer.cs">
<DependentUpon>HolidaysForm.cs</DependentUpon>
</Compile>
- 在该文件中,继续查找到相应的资源文件名,比如:HolidaysForm.resx
将内容
<EmbeddedResource Include="HolidaysForm.resx" />
修改为:
<EmbeddedResource Include="HolidaysForm.resx">
<DependentUpon>HolidaysForm.cs</DependentUpon>
</EmbeddedResource>
修改完成后保存该cs工程文件,利用Visual Studio的design viewer就可以打开可视化的设计界面。
如有不清楚之处,欢迎随时留言进行交流。