C# MSBuild自定义规则
发生MSBuild时,如果sharepoint项目(来自该项目的WSP)以GAC为目标,我希望它失败 就在打包之前,我想检查feature.xml或任何其他包针对的.xml文件C# MSBuild自定义规则,c#,.net,sharepoint,msbuild,C#,.net,Sharepoint,Msbuild,发生MSBuild时,如果sharepoint项目(来自该项目的WSP)以GAC为目标,我希望它失败 就在打包之前,我想检查feature.xml或任何其他包针对的.xml文件 实现这一目标的可能途径是什么?我在自定义MSBuild任务中没有任何经验。这可行吗 我的建议如下: 创建一个程序,该程序接受项目路径作为参数,并分析您自己定义的错误。当您的程序发现错误时,它将以以下格式之一简单地向控制台输出错误: error: <message> <filename>: erro
实现这一目标的可能途径是什么?我在自定义MSBuild任务中没有任何经验。这可行吗 我的建议如下: 创建一个程序,该程序接受项目路径作为参数,并分析您自己定义的错误。当您的程序发现错误时,它将以以下格式之一简单地向控制台输出错误:
error: <message>
<filename>: error: <message>
<filename> (<line>): error: <message>
<filename> (<line>,<column>): error: <message>
错误:
:错误:
():错误:
(,):错误:
您可以将“错误”一词替换为“警告”。使用此特定格式时,当使用VS.传递文件名进行编译时,错误(或警告)将出现在Visual Studio错误列表中,该行将启用“双击跳转到错误”功能
接下来,打开项目文件并添加一个后构建目标。在这个目标中,您可以使用Run命令调用自己的应用程序并传递项目路径。确保将“ContinueOnError”属性设置为false
现在,无论何时构建自定义目标,都将触发。自定义目标将调用分析项目的应用程序。当应用程序输出错误时,MSBuild将拾取该错误并取消继续,并将生成标记为失败
您也可以为此使用MSBuild任务,但我建议您不要这样做。msbuild任务将加载到Visual Studio的AppDomain,并锁定程序集。如果要替换它(例如,因为更改了分析规则),首先必须退出Visual Studio以解锁该文件。在使用源代码管理系统时,如果人们只想更新当前文件,而不担心程序集是否被锁定,这将非常恼人
作为构建的一部分,我分析了我们的一个项目,并作为构建的一部分为我们自己的web服务创建了一个代理客户端,从而成功地运行了这一原则。刚刚发现已经有一个名为-AssemblyDeploymentTarget的VS-SP2010目标