首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Studio 2010 Extensibility -覆盖生成操作而不影响cproj文件

Visual Studio 2010 Extensibility -覆盖生成操作而不影响cproj文件
EN

Stack Overflow用户
提问于 2011-05-15 05:34:16
回答 1查看 1.1K关注 0票数 2

我正在研究一种在Visual Studio2010中构建MonoTouch项目的方法,而不需要更改cproj文件。我就快完成了,但最后一步是在MonoTouch项目中具有构建操作“页面”的*.xib文件。

在Visual Studio2010中,图片操作页面将调用XAML编译器,因此为了在VS2010中构建项目,我需要将构建操作设置为None。这样做的问题是,页面文件被更改了,在MonoTouch中构建之前,我需要将它重新设置为.cproj。

所以我的问题是这样的。使用Visual Studio可扩展性模型,是否可以“拦截”某些文件类型并“忽略”它们或更改它们的构建类型?或者是Visual Studio使用msbuild构建所有内容,因此只关心.cproj文件中实际写入的内容?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-16 02:09:41

我最终使用了一个略有不同的策略来解决这个问题。您可以侦听DTE对象上的不同构建事件,并在构建前后在Visual Studio2010扩展中运行代码。

代码语言:javascript
复制
_dte.Events.BuildEvents.OnBuildBegin += MakeXibsNone;
_dte.Events.BuildEvents.OnBuildDone += MakeXibsPage;

使用此策略,我可以在构建之前将构建操作更改为None,然后在构建之后更改回Page。更改生成类型的代码只是枚举解决方案中的所有项目以及项目中的所有项目项。它查找所有扩展名为.xib的文件,并使用以下代码更改构建操作:

代码语言:javascript
复制
xib.Properties.Item("ItemType").Value = "Page";
xib.Properties.Item("ItemType").Value = "None";

完整的实现可以在https://github.com/follesoe/VSMonoTouch/blob/master/VSMonoTouch/VSMonoTouchPackage.cs上找到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6004928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档