Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MSBuild自定义规则_C#_.net_Sharepoint_Msbuild - Fatal编程技术网

C# MSBuild自定义规则

C# MSBuild自定义规则,c#,.net,sharepoint,msbuild,C#,.net,Sharepoint,Msbuild,发生MSBuild时,如果sharepoint项目(来自该项目的WSP)以GAC为目标,我希望它失败 就在打包之前,我想检查feature.xml或任何其他包针对的.xml文件 实现这一目标的可能途径是什么?我在自定义MSBuild任务中没有任何经验。这可行吗 我的建议如下: 创建一个程序,该程序接受项目路径作为参数,并分析您自己定义的错误。当您的程序发现错误时,它将以以下格式之一简单地向控制台输出错误: error: <message> <filename>: erro

发生MSBuild时,如果sharepoint项目(来自该项目的WSP)以GAC为目标,我希望它失败

就在打包之前,我想检查feature.xml或任何其他包针对的.xml文件


实现这一目标的可能途径是什么?我在自定义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目标