Visual Studio 2019执行Unblock-File后无法添加现有窗体的.resx文件
.resx文件在Visual Studio 2019中无法显示/导入的问题
Unblock-File操作本身不会隐藏文件或破坏文件结构,它只是移除文件的NTFS安全标记(用于解除从网络下载文件的系统锁定)。你遇到的问题大概率是由其他因素导致的,以下是排查和解决方法:
检查VS的文件筛选器
在添加现有项对话框中,点击右下角的文件类型下拉菜单(默认可能是「所有项目文件」),选择「所有文件(.)」,查看是否能找到目标.resx文件。VS的默认筛选规则有时会忽略未与项目建立关联的.resx文件。确认文件属性与命名匹配
- 在Windows资源管理器中右键该.resx文件,检查「隐藏」属性是否被勾选,若勾选则取消。
- 确认.resx文件名与对应窗体的.cs、.designer.cs文件名完全一致(包括大小写,VS对命名匹配的敏感度较高),不匹配的话VS无法自动关联,甚至会在筛选时忽略它。
修复项目文件(.csproj)配置
如果该.resx文件曾被添加到项目后又移除,.csproj文件可能残留错误配置:- 关闭Visual Studio,找到项目的.csproj文件用记事本打开。
- 搜索目标.resx文件名,删除任何标记为
None或被排除的错误条目。 - 手动添加正确的关联配置:
<EmbeddedResource Include="myfile.resx"> <DependentUpon>myfile.cs</DependentUpon> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>myfile.Designer.cs</LastGenOutput> </EmbeddedResource> - 保存.csproj文件后重新打开项目,再尝试添加文件。
清理残留的NTFS流与权限
虽然Unblock-File应该已移除安全标记,但可以手动验证:
在PowerShell中执行Get-Item myfile.resx -Stream *,如果存在:Zone.Identifier等额外流,执行Remove-Item myfile.resx -Stream :Zone.Identifier删除。同时确认当前用户对该文件拥有读取权限。
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

