【问题标题】:Namespace path broken after changing Resources.resx properties更改 Resources.resx 属性后命名空间路径损坏
【发布时间】:2019-10-18 18:13:10
【问题描述】:

我的 VB.Net VSTO 上有一个运行时 System.Resources.MissingManifestResourceException。我读到这可能是由于我的资源文件中的设置错误。所以我进入属性并确保Build Action 设置为Embedded Resource(确实如此)。

就在下面,我看到Copy to Output Directory被设置为Do not copy。我认为如果我将其更改为 Copy always 并尝试编译它不会有任何伤害。

它没有解决任何问题,但是现在Build Action 已更改为Content,并且我有几十个BC30456 错误:

“资源”不是“WordAddIn.My”的成员

当我遇到错误时,我最终进入了一个 UserControl 设计器,并且出现错误的行显示:Me.Button_Foo.Image = Global.WordAddIn.My.Resources.Resources.Resource_Bar

我确实将资源文件设置恢复为原来的状态(Embedded ResourceDo not copy),但错误仍然存​​在..

注意:Resources.Designer的命名空间为My.ResourcesResources类及其成员为Friend。但是智能感知不允许我从我有构建错误的任何对象访问命名空间。我尝试更改其他名称的“自定义工具命名空间”,但它没有出现在项目的任何地方。 (自定义工具确实更新了 Resources.Designer.vb 文件,我会说它做得很好)


更新

Resources.Designer.vb 不包含在项目中,但显示在“杂项文件”中。与本帖症状相同:Visual Studio - project shows up as "Miscellaneous Files"

我做了 (1) 从项目中排除 Resources.resx(不能单独在 Resources.Designer.vb 上工作),(2) 清理解决方案,(3) 重新启动 Visual Studio,(4) 清理解决方案 (zust'in 'kase), (5) 然后重新包含它,现在的问题是 Resources.Designer.vb 包含在项目中,但没有作为“嵌入”在 Resources.resx 中,所以恐怕我可能已经坏了它?

【问题讨论】:

    标签: vb.net visual-studio


    【解决方案1】:

    Visual Studio 2017 的修复如下:

    1. 注意自定义工具命名空间:在解决方案资源管理器中,右键单击Resources.resx 文件->“属性”并记住“自定义工具命名空间”字段的值。 (第 6 步需要)
    2. 从项目中删除 Resources.resxResources.Designer.vb 文件:在解决方案资源管理器中,对于每个文件,右键单击 ->“从项目中排除”
    3. 清理/重建解决方案
    4. 重启 Visual Studio
    5. 重新包含Resources.resx 文件,但不是 Resources.Designer.vb:在解决方案资源管理器中,确保启用了[显示所有文件] 按钮(靠近[刷新]);资源文件旁边应该出现一个灰色的文件夹/文件符号;右键单击->“包含在项目中”(或者,右键单击“我的项目”节点并选择“添加”/“现有项目..”
    6. 在解决方案资源管理器中,右键单击Resources.resx ->“属性”:确保“自定义工具”值为“PublicVbMyResourcesResXFileCodeGenerator”;并且“自定义工具命名空间”对应于您从项目中删除文件之前的值(参见步骤 1。)。
    7. 在解决方案资源管理器中,右键单击Resources.resx -> '运行自定义工具'
    8. 应该会自动生成一个新的设计器文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多