在MonoDevelop中的Monotouch项目中组织ViewControllers的正确方法是什么?

时间:2012-12-13 20:50:41

标签: xamarin.ios monodevelop

在iOS应用上使用MonoDevelop,我需要开始将一些文件组织到子目录中。

我首先在项目的主目录中创建一个新的ViewControllers文件夹。主要是,我刚刚尝试将Xcode故事板创建的文件拖放到这个新文件夹中。这给了我文件丢失的错误,有时我不得不手动编辑故事板文件来删除或修复文件的位置。

虽然我已经取得了一些成功,但有时这也会导致故事板文件在Xcode中进行更改后没有更新designer.cs文件。

有没有人找到正确的方法来组织没有这些问题的大型项目?

1 个答案:

答案 0 :(得分:2)

看看这个Bug Report on Xamarin:错误6130 - 移动带有依赖项中断文件的文件。


父级后,DependentUpon文件中的csproj属性不会更新 文件被移动。例如,在上创建一个新的控制器类 Xamarin Studio然后将其移动到子文件夹会破坏依赖性。

修复它的唯一方法是通过手动编辑 csproj并在Xamarin Studio中重新加载项目。你必须每次都这样做 你添加一个新文件。

看起来Xamarin Studio会添加而不是更新csproj中的现有条目。这里 在将文件移动到子文件夹之前是csproj:

<Compile Include="TestViewController.cs" />
<Compile Include="TestViewController.designer.cs">
  <DependentUpon>TestViewController.cs</DependentUpon>
</Compile>

将文件移动到Controller子文件夹后。

<Compile Include="TestViewController.designer.cs">
  <DependentUpon>TestViewController.cs</DependentUpon>
</Compile>
<Compile Include="Controller\TestViewController.cs" />
<Compile Include="Controller\TestViewController.designer.cs">
  <DependentUpon>TestViewController.cs</DependentUpon>
</Compile>