Winforms Designer,带VC ++引用的C#项目,工作目录问题

时间:2012-09-11 15:08:56

标签: c# winforms visual-c++ projects-and-solutions windows-forms-designer

我正在使用~100项目(混合C#Winforms,VC ++ Winforms和Unmanaged C)的解决方案。

我有一个名为'DatafiltersControls'(C#)的项目,它有一个名为'DatafiltersTypes'(VC ++)的项目的引用,如下所示是特定引用的xml条目。

<ProjectReference Include="..\DatafiltersTypes\DatafiltersTypes.vcxproj">
  <Project>{360679FF-815C-4B39-8E5A-62C0D2A6DB31}</Project>
  <Name>DatafiltersTypes</Name>
  <Private>False</Private>
</ProjectReference>

现在,问题是:“设计师只会在某些情况下加载我的控件”。经过大量的研究后,我将其分解为我的开发环境,以及我打开解决方案的方式。我的构建环境是在dos窗口内创建的,它将替换一个映射到目录的新驱动器(P :)。

创建目录后:

  • 如果我的提示是“p:\ common”作为当前工作目录,并键入common.sln,则所有设计人员都可以正常工作。当我最初设置该引用时,这是当前的工作目录。
  • 如果我从资源管理器双击common.sln,然后尝试打开“复杂”表单,我会收到以下错误:无法加载文件或程序集'DatafiltersTypes,Version = 1.0.1.0,Culture =中性,PublicKeyToken = null'或其依赖项之一。系统找不到指定的文件
  • 如果我的提示有“p:\”或任何其他目录作为CWD,然后调用“p:\ common \ common.sln”,设计师会打破复杂的表格(与上面相同)

我认为具体的问题是这样的:我的引用相对地增加,基于视觉工作室打开时的CWD。从那时起,设计师打破任何“复杂”的形式,因为搜索路径基于cwd。

如果需要,我可以定义'复杂',我有确切的情况。我理想的解决方案是允许我的引用基于驱动器的根目录(这是我公司的开发人员已经有的约束)。例如,而不是

.... \ build \ output \ datafilterstypes.dll,我希望\ build \ output \ datafilterstypes.dll作为我的参考。

重要的是要注意:当我加载devenv时,无论我的工作目录如何,一切都编译得很好,它只是设计师。

提前致谢。

编辑:要添加,我有同样的问题,如果

1 个答案:

答案 0 :(得分:1)

问题是设计师无法加载纯净的C ++ DLL。将任何直接或间接C ++ dll的项目转换为纯粹的。