最近遇到的VS2010RC的两个错误
最近几天,为了更自然的用TFS2010(而不打算用VS2008去连接TFS2010),而把解决方案升级到VS2010,也就随之而来遇到如下两个Bug。
第一个,和System.Design相关的。
两个Project,A是Full FX,B是Client Profile(不管是.NET 3.5 SP1还是.NET 4.0),B引用A。如果在A中引用了System.Design.dll等Client Profile不能引用的程序集,那么编译B就会出错(同时也有警告信息)。在VS2008中,只会出现警告信息,不会编译出错。
UPDATE(20100327) :更正以下,B如果是Library Project(也即编译为dll)是不会报错的,只有要编译为exe的project才会出错。
发现有两个人提交了类似的问题,不过微软说这是By Design。这样的话,就逼着我们把自定义的Designer都和自定义控件的项目分离,并且在设置DesignerAttributes的时候只能用string的重载签名版本。
第二个,和System.Windows.Forms.DataVisualization.dll与ClickOnce相关的。
把一个引用了System.Windows.Forms.DataVisualization.dll且用ClickOnce发布的VS2008项目升级到VS2010(Target Framework还是用.NET 3.5 SP1 Client Profile)。在进行部署的时候,发现ClickOnce的“Application Files”中不会包含System.Windows.Forms.DataVisualization.dll。
估计是VS2010的ClickOnce认为这是在用.NET 4.0呢(.NET 4.0内置了MSChart,所以部署时不用包含这个程序集)。
解决办法只有,把System.Windows.Forms.DataVisualization.dll作为Content添加到项目中,且Copy if newer;如果需要中文界面的话,要添加一个zh-CHS的文件夹,在其中添加System.Windows.Forms.DataVisualization.resources.dll。