我想做一件非常简单的事情:将VS13中的一些代码从一个项目移到另一个项目中,而我正面临着数据集的奇怪问题。为简单起见,假设在我的源项目中,我有一个名为MyDataSet
的数据集,它由5个文件组成:MyDataSet.cs
,MyDataSet.Designer.cs
,MyDataSet.xsc
,MyDataSet.xsd
,MyDataSet.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.cs
和MyDataSet1.Designer.cs
中的 namespace 已自动更改为正确的 namespace 。我正在使用ReSharper,首先我认为这可能是其原因,但是我disabled ReSharper并继续发生相同的行为。
也许我可以通过删除新创建的文件并修改
cproj
文件来解决此问题,但是实际上有很多数据集需要复制,我真的不喜欢这种工作。是否有人有任何想法是造成这种问题的原因以及如何解决?
最佳答案
通过在解决方案资源管理器(通常是.xsd)中右键单击数据集根节点并选择“复制”,从Visual Studio中移动数据集,然后右键单击目标项目或项目文件夹并选择“粘贴”。这应该复制文件并正确标记csproj文件。