zoukankan      html  css  js  c++  java
  • C#解决方案生成工具(2)

    环境  VS2017 社区版 W10

    Project类 : 在Microsoft.Build.Evaluation命名空间下,可使用Project类分析项目的.csproj文件

    // 实例化对象,参数是项目的.csproj文件的路径

      var proj = new Project("d:/xxx/xxx.csproj");

    // 调用这个方法会更新.csproj文件.

      proj.Save()

    // 如果指定路径,会保存到新路径上,用此办法,可以使用一个.csproj模板来新生成各种项目的.csproj文件

      proj.Save(新的路径)// 将当前.csproj文件保存到新的路径,源有文件不变化.

    // 根据属性名获取属性的值,.使用这个方法获取项目的相关信息,比如项目名,项目路径

      proj.GetPropertyValue("ProjectName")// 获取项目名字

      通过打印所有属性的名值对,可以知道有哪些属性可以使用.

      proj.Properties // 显示有328个属性,几乎需要知道的属性都有.

    使用过程中遇到的问题:

      在实例化一个asp.net webapi项目时,传入.csproj文件后,实例化失败,异常显示找不到 Microsoft.WebApplication.targets 这个东西.

      对着.csproj文件查找之后,认为有三处与之关相的节点:

        <Project ToolsVersion="12.0" // 不同VS版本建立的项目不同,另外项目类型不同时也不一样.vs2017建的DLL项目值显示是15

        // 以下两个节点指示了Microsoft.WebApplication.targets引用路径,看来问题原因是找不到这个路径下的这个东西

        <Import Project="$(VSToolsPath)WebApplicationsMicrosoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
        <Import Project="$(MSBuildExtensionsPath32)MicrosoftVisualStudiov10.0WebApplicationsMicrosoft.WebApplication.targets" Condition="false" />

      由于未成分析出节点属性意义,所以没想过修改节点属性值来解决问题.通过在本机查找Microsoft.WebApplication.targets文件,找到两个目录下有.

        // VS编译工具目录 v15

        C:Program Files (x86)MSBuildMicrosoftVisualStudiov14.0

        // VS2017COMMUNITY 编译工具目录 15

        C:Program Files (x86)Microsoft Visual Studio2017CommunityMSBuildMicrosoftVisualStudiov15.0

        第2个目录是安装VS2017的目录,第1个目录不清楚.也许这和安装VS的时候有关系.异常信息显示为找不到Microsoft.WebApplication.targets的出错路径是第1个目录下找不到.看来编译工具默认是

      找第1个路径下的V15版本下的这种文件,然后发现没找到.因为本来就没有.

      最后解决办法时,将第2个目录下的这个WebApplications文件夹复制到第1个目录下,但是对应的V15版本目录下.即:

      C:Program Files (x86)MSBuildMicrosoftVisualStudiov15.0  然后会发现没有异常了.实例化成功.

  • 相关阅读:
    10.23 JSTL
    10.22 EL执行表达式
    10.21 EL表达式(只能在jsp中使用)
    10.20 网站访问量统计(application)
    10.19 JSP内置对象作用域
    10.16 Session和Cookie的区别
    10.15 转发与重定向
    剑指Offer_26_二叉搜索树与双向链表
    剑指Offer_25_复杂链表的复制
    剑指Offer_24_二叉树中和为某一值的路径.md
  • 原文地址:https://www.cnblogs.com/mirrortom/p/8451947.html
Copyright © 2011-2022 走看看