我正在为我的主项目在C#中编写一个自定义Control类。
有2个项目,一个用于我的Control,一个用于我的主项目。这两个项目在同一个解决方案中。我将主项目的引用添加到Control项目中。我注意到,第一次将控件从工具面板拖到我的主winform上后,第一次在 C:\ Users \ XXX \ AppData \ Local \ Microsoft \ VisualStudio \ 9.0 \ ProjectAssemblies中生成了一个程序集文件夹,文件夹名称类似于“ jlebh-py01 ”。
第一次构建总是正常,但在重建我的Control类或整个解决方案后,将在 C:\ Users \ XXX \ AppData \ Local \ Microsoft \ VisualStudio \ 9.0 \ ProjectAssemblies生成一个新的程序集文件夹,然后出现问题,我的Control无法表现良好,因为Visual Studio说这两种类型“来自不同的位置”。错误消息如下:
[A] MyControl.TypeXXX无法转换为 [B] MyControl.TypeXXX。输入A orginates 来自assemblyXXX的位置 'C:\用户\ XXX \应用程序数据\本地\微软\ VisualStudio的\ 9.0 \ ProjectAssemblies \ jlebh-py01 \ MyControl.dll' 来自assemblyXXX的B型原点 地点 'C:\用户\ XXX \应用程序数据\本地\微软\ VisualStudio的\ 9.0 \ ProjectAssemblies \ ue4i-z3j01 \ MyControl.dll'
如果我直接引用Control DLL而不是通过项目引用,或者在主项目中使用我的Control之后从不重建Control项目,那么事情似乎没问题。
有谁知道为什么? 是否是在同一解决方案中开发控件和主项目的正确方法?
答案 0 :(得分:2)
根据您的解释 - 您的解决方案中的主项目似乎没有更新您对控件库的引用。我至少在ASP.NET工作了几年,并且在引用的程序集中遇到了类似的问题,但总是有一个非常简单的解决方法 - 重建主项目。这应该清理它,然后运行一个新的构建。
您可以尝试的另一件事是向控件添加变量汇编版本。在项目属性,程序集信息中,尝试将版本号设置为1.0。*这将强制最后两个版本号基于一天和一天中的时间,并且每次重建控件时 - 它将具有不同的版。只要主项目保持版本更新 - 它应该 - 应该没有任何问题..