我想做一件非常简单的事情:将VS13中的一些代码从一个项目移到另一个项目中,而我正面临着数据集的奇怪问题。为简单起见,假设在我的源项目中,我有一个名为MyDataSet的数据集,它由5个文件组成:MyDataSet.csMyDataSet.Designer.csMyDataSet.xscMyDataSet.xsdMyDataSet.xss

然后,使用标准Windows功能将这些文件复制到目标项目文件夹中,并在VS13中使用Include in Project菜单选项。之后,我看到添加了一个额外的文件: MyDataSet1.Designer.cs

我试图检查cproj文件,它们是不同的。

源(仅显示与目标不同的部分):

<Compile Include="MyDataSet.Designer.cs">
  <AutoGen>True</AutoGen>
  <DesignTime>True</DesignTime>
  <DependentUpon>MyDataSet.xsd</DependentUpon>
</Compile>

<None Include="MyDataSet.xsd">
  <SubType>Designer</SubType>
  <Generator>MSDataSetGenerator</Generator>
  <LastGenOutput>MyDataSet.Designer.cs</LastGenOutput>
</None>

目标(仅显示与源不同的部分):
<Compile Include="MyDataSet.Designer.cs">
  <DependentUpon>MyDataSet.cs</DependentUpon>
</Compile>

<Compile Include="MyDataSet1.Designer.cs">
  <AutoGen>True</AutoGen>
  <DesignTime>True</DesignTime>
  <DependentUpon>MyDataSet.xsd</DependentUpon>
</Compile>

<None Include="MyDataSet.xsd">
  <Generator>MSDataSetGenerator</Generator>
  <LastGenOutput>MyDataSet1.Designer.cs</LastGenOutput>
  <SubType>Designer</SubType>
</None>

我还注意到MyDataSet.csMyDataSet1.Designer.cs中的 namespace 已自动更改为正确的 namespace 。

我正在使用ReSharper,首先我认为这可能是其原因,但是我disabled ReSharper并继续发生相同的行为。

也许我可以通过删除新创建的文件并修改cproj文件来解决此问题,但是实际上有很多数据集需要复制,我真的不喜欢这种工作。

是否有人有任何想法是造成这种问题的原因以及如何解决?

最佳答案

通过在解决方案资源管理器(通常是.xsd)中右键单击数据集根节点并选择“复制”,从Visual Studio中移动数据集,然后右键单击目标项目或项目文件夹并选择“粘贴”。这应该复制文件并正确标记csproj文件。

07-24 13:24