知道我该怎么做吗?
现在几天在Resources.Designer.vb
完成,我们有以下几行:
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
#If WizardVersion Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Wizard.Resources", GetType(Resources).Assembly)
#ElseIf CalculatorVersion Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Calculator.Resources", GetType(Resources).Assembly)
#ElseIf ViewerVersion Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Viewer.Resources", GetType(Resources).Assembly)
#End If
resourceMan = temp
End If
Return resourceMan
End Get
End Property
每次通过编译器重新生成该文件,因此每次我必须手动添加那些行。
你能建议另一种方法吗?
感谢。
答案 0 :(得分:2)
您可以使用反射来覆盖Resources类创建的ResourceManager:
Sub InitResources()
#If WizardVersion Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Wizard.Resources", GetType(Resources).Assembly)
#ElseIf CalculatorVersion Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Calculator.Resources", GetType(Resources).Assembly)
#ElseIf ViewerVersion Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Viewer.Resources", GetType(Resources).Assembly)
#End If
Dim resManField As System.Reflection.FieldInfo = GetType(My.Resources.Resources).GetField("resourceMan", Reflection.BindingFlags.Static Or Reflection.BindingFlags.NonPublic)
resManField.SetValue(Nothing, temp)
End Sub
那不是很优雅,但应该有效......
答案 1 :(得分:1)
您可以运行批处理文件,将文件复制(并覆盖旧文件)到预构建操作的适当位置。您可以将标志作为批次的参数。