我正在使用 VisualStudio 2013 ,我想将 VS项目模板导出为我已写过的表单。
我使用了4张自定义图片(磁盘上的本地资源):
当然我需要导出图像(这是我第一次尝试在模板中导出资源),当我创建Item模板时问题就开始了:
然后我创建一个新项目来测试我的新Item模板:
但是当我尝试加载我的Item模板时,该模板被假定为具有Form和" 所有dependandt文件,包括资源文件"资源不包括在内,我收到了这些错误:
(在设计师档案中:)
Me.ToolStripButton_SendToClipboard.Image = Global.TestSolution.My.Resources.Resources.Clipboard
剪贴板不是TestSolution.My.Resources.Resources
的成员
(请注意错误消息中' Resources'名称空间被写入2次...是)
......等其他3张图片。
那我该怎么办?
我想要我的' ErrorDialog '表单已经过安全化,只需将其作为项目模板加载到任何类型的项目中,而不必担心这些资源。
PS:导出的' ErrorDialog.resx"表文件不包含四个图像中的任何一个,并且我不知道如何手动添加它们是否可以在 .ZIP 模板。
更新
我试图解压缩压缩模板以进行手动更改(以便能够加载fuc 图像)然后我已经复制/粘贴在模板解决方案的根目录中了"资源"包含4个图像的文件夹,所以我有这个文件夹' ** C:\ VS项目模板\我的项目模板\资源',之后我在设计师中做了这个更改: / p>
由此:
Me.ToolStripButton_SendToClipboard.Image = Global.$rootnamespace$.My.Resources.Clipboard
对此:
Me.ToolStripButton_SendToClipboard.Image = Image.FromFile(".\Resources\Clipboard.png")
我认为相对路径应指向' C:\ VS项目模板\我的项目模板\资源**',但不要相对路径正在我加载项目模板的项目的工作目录中搜索,例如,如果我在' ** C:\ VS Projects \ MyProject \ Solution.sl '中创建一个新项目。然后我在设计时加载项目模板,然后在' C:\ VS Projects \ MyProject \ Resources \ Image.png '中搜索图像,以便' ** \资源**'我指定的不是在项目模板的根文件夹中搜索图像。
也许可以修复在上面的相对路径中指定任何类型的VS全局变量?。
(这是一个足够接近的意图)
更新2
如果有人可以检查如何将对话框导出为包含图像的项目模板,那么这是源代码......真的不是。
http://www.mediafire.com/download/f6caca6bcc9wbwc/Elektro+ErrorDialog.rar
答案 0 :(得分:1)
您遇到的问题是,当图片位于项目资源中时,您正在导出表单项。结果,图像不存在。导出过程不像代码分析那样工作,并运行代码以查看您可能分配给它的内容;它依赖于RESX文件中的“静态”引用。
解决方案是通过添加ImageList组件(它不是控件)并将所需图像添加到其中来将图像转换为RESX形式。这样,它们存储在 表单的resx中,如下所示:
<data name="ImageList1.ImageStream"
mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvb
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFA
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDA
(etc)
然后这应该导出到模板,但我认为DLL方法更适合你正在做的事情。