You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

旧.NET项目引入WebServices文件夹后出现重复项构建错误求助

解决.NET项目中WebServices文件夹导致的重复Resources构建错误

你遇到的问题核心是:WebServices文件夹作为独立解决方案,它的资源文件(比如Global.resources)和主项目的资源文件被同时纳入构建流程,导致Resources参数出现重复项。下面是几个可行的解决方案,你可以根据项目情况尝试:


1. 调整WebServices子项目的资源文件属性,避免命名冲突

因为WebServices本身是独立项目,它的资源文件编译后可能和主项目的资源文件重名。你可以这么操作:

  • 右键打开WebServices文件夹里的项目(.csproj文件),进入属性页面
  • 找到对应的Global.resx文件,右键选择属性
  • 修改自定义工具命名空间为一个唯一的名称,比如YourMainProject.WebServices.Resources
  • 保持生成操作为Embedded Resource,这样编译后生成的资源文件会带有这个命名空间前缀,不会和主项目的资源文件重名

2. 手动编辑主项目的.csproj文件,移除重复的资源引用

有时候主项目会错误地包含了WebServices子项目的编译输出资源,你可以手动清理:

  • 在解决方案资源管理器里,右键主项目选择卸载项目,然后再次右键选择编辑.csproj
  • 搜索<EmbeddedResource>或<Resource>节点,查找包含obj\Debug\abcd.Global.resources的条目
  • 你可能会发现两个相同的条目,其中一个来自WebServices文件夹的路径,直接删除重复的那一行即可
  • 保存后重新加载项目,尝试构建

3. 将WebServices作为子项目引入解决方案,而非直接包含文件夹

既然WebServices有自己的SLN,更合理的做法是把它作为子项目添加到主解决方案中:

  • 在主解决方案上右键,选择添加 > 现有项目,找到WebServices文件夹里的.csproj文件添加进来
  • 然后在主项目的引用里添加对这个WebServices子项目的引用
  • 这样主项目会引用子项目的编译DLL,而不是直接编译子项目的文件,从根源上避免资源文件重复的问题
  • 之后你依然可以正常修改track.asmx文件,修改后单独编译子项目即可,主项目构建时会自动使用最新的子项目输出

4. 处理global.asax的冲突问题

主项目和WebServices子项目都有global.asax,这也可能是导致资源重复的诱因:

  • 给WebServices的global.asax设置不同的生成操作,比如改为Content(如果它不需要生成资源文件)
  • 或者修改WebServices的global.asax.cs里的命名空间,确保和主项目的global.asax命名空间不同,这样编译后生成的资源文件也不会重名

内容的提问来源于stack exchange,提问作者Divya Dixit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 08:27:41