什么是VS2013中的LinqToXsdSchema构建操作?

时间:2014-06-25 18:29:13

标签: c# xml linq msbuild

所以这个article讨论了使用XSD和LINQ处理XML数据的一种很棒的方法。这一切都很好玩,但author claims他不再对在CodePlex上维护项目感兴趣。此外,CS项目文件的NuGet包requires manual edit

<LinqToXsdBinDir Condition="'$(LinqToXsdBinDir)' == ''">$(SolutionDir)\LinqToXSD\</LinqToXsdBinDir>

将添加到PropertyGroups(构建/发布)中的每一个。那么为什么微软会离开呢? LinqToXsdSchema作为VS 2013中的构建操作?这个构建操作还有其他用途吗?

1 个答案:

答案 0 :(得分:1)

为什么要声称微软会这么做?我不知道他们是如何参与其中的。如果在项目文件中定义了操作或项目所依赖的目标文件,则会显示该操作。这就是MsBuild的工作原理。 <Import Project="$(LinqToXsdBinDir)\LinqToXsd.targets" />是将Build Action添加到下拉列表中的内容。

准确地说:

 <!-- This ItemGroup is needed to make sure that LinqToXsdSchema and LinqToXsdConfiguration are available in VisualStudio-->  
 <ItemGroup>
   <AvailableItemName Include="LinqToXsdSchema" />   
   <AvailableItemName Include="LinqToXsdConfiguration" />
 </ItemGroup>

你可以view the targets file here

从项目中删除.targets文件,并删除提及&#34; LinqToXsdSchema&#34;来自项目文件中的项目。它也可能在您的本地MsBuild文件夹中注册并自动加载所有项目,在这种情况下从您的MsBuild安装中删除.targets文件。

当然,构建操作没有用处,除非有其他工具为操作选择了相同的名称。