c# – 使用Microsoft.Build.Evaluation(而不是Engine)修改编程cs
发布时间:2020-12-15 04:27:29 所属栏目:百科 来源:网络整理
导读:我想阅读,修改和写回csproj文件. 我发现了这段代码,但不幸的是引擎类被折旧了. Engine engine = new Engine()Project project = new Project(engine);project.Load("myproject.csproj");project.SetProperty("SignAssembly","true");project.Save("myproject
我想阅读,修改和写回csproj文件.
我发现了这段代码,但不幸的是引擎类被折旧了. Engine engine = new Engine() Project project = new Project(engine); project.Load("myproject.csproj"); project.SetProperty("SignAssembly","true"); project.Save("myproject.csproj"); 所以我继续根据提示我应该使用Evaluation.ProjectCollection而不是Engine: var collection = new ProjectCollection(); collection.DefaultToolsVersion = "4.0"; var project = new Project(collection); // project.Load("myproject.csproj") There is NO Load method :-( project.FullPath = "myproject.csproj"; // Instead of load? Does nothing... // ... modify the project project.Save(); // Interestingly there is a Save() method 没有Load方法了.我试图设置属性FullPath,但项目似乎仍然是空的.错过了什么? (请注意我知道.csproj文件是带有XSD架构的标准XML文件,我知道我们可以使用XDocument或XmlDocument来读/写它.这是一个备份计划.只需看看.Save()方法就可以了.项目类我认为如果我无法加载现有的.csproj,我会错过一些东西.thx) 解决方法
我实际上找到了答案,希望能帮助别人:
我们应该使用ProjectCollection类的工厂方法,而不是创建一个新的Project(…)并尝试.Load(…)它. // Instead of: // var project = new Project(collection); // project.FullPath = "myproject.csproj"; // Instead of load? Does nothing... // use this: var project = collection.LoadProject("myproject.csproj") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – OmniAuth路由错误,没有路由匹配
- C语言 变量详解及示例代码
- cocos2d-x中CCCallFunc CCCallFuncN CCCallFuncND的区别和使
- c# – 如何在Jetbrain的Rider IDE中运行项目?
- ruby-on-rails-3.2 – Ruby on Rails – 使Slim成为默认模板
- c# – 如何使用ScrapySharp解析html文档中的元素?
- ruby-on-rails – Rails时间戳不使用正确的时区
- React-Native通过登录界面学习TextInput组件
- ios – 使用Interface Builder中的自动布局(而不是代码)使U
- 关于“参数”的几个问题,也许面试会问到哦~