Msbuild 关于团队构建和构建网站,自定义代码活动问题

Msbuild 关于团队构建和构建网站,自定义代码活动问题,msbuild,web,build,tfsbuild,Msbuild,Web,Build,Tfsbuild,我正在尝试使用TeamBuild2010发布一个网站,但是我没有看到任何简单的选项。因此,我尝试创建一个自定义活动,用我的参数调用代理中的进程(“aspnet_compiler.exe”),并发布我的站点 我可以删除文件夹,创建文件夹,编译和生成项目 但当我调用代理时,这个过程并不是从代理开始的。。。有什么问题 protected override void Execute(CodeActivityContext context) { // Obtain the

我正在尝试使用TeamBuild2010发布一个网站,但是我没有看到任何简单的选项。因此,我尝试创建一个自定义活动,用我的参数调用代理中的进程(“aspnet_compiler.exe”),并发布我的站点

我可以删除文件夹,创建文件夹,编译和生成项目

但当我调用代理时,这个过程并不是从代理开始的。。。有什么问题

    protected override void Execute(CodeActivityContext context)
    {
        // Obtain the runtime value of the Text input argument
        // string text = context.GetValue(this.Text);
        Process proc = new Process();
        proc.EnableRaisingEvents = true;
        proc.StartInfo.WorkingDirectory = @"C:\Windows\Microsoft.NET\Framework\v2.0.50727";
        proc.StartInfo.FileName = "aspnet_compiler.exe";
        proc.StartInfo.Arguments = "-p "+context.GetValue(this.SourcesDirectory) +
               " -v / " + PublishDirectory;
        proc.Start();
        proc.WaitForExit();

        while (!proc.HasExited)
        {
        }

        context.SetValue(Result,proc.StandardOutput.ReadToEnd());
    }

是否有其他方法来构建/发布网站?我的代码有什么问题?

每次TFS构建项目/解决方案时,它都会自动发布web项目/站点,并将它们放置在名为
\u PublishedWebsites
的文件夹中。你可以很容易地使用它


另外,如果您需要将该文件夹复制/移动到另一个地方,或者如果您需要使用其他文件/文件夹来完成此操作,则可以使用<代码> CopyCuths<代码>、<代码> DeleteDirectory < /C>和其他Team Foundation构建活动。如果您在构建过程中仍然需要运行某些内容,则可以使用

InvokeProcess
构建活动,而不是创建自己的构建活动。

每次TFS构建项目/解决方案时,它都会自动发布web项目/站点,并将它们放置在名为
\u PublishedWebsites
的文件夹中。你可以很容易地使用它


另外,如果您需要将该文件夹复制/移动到另一个地方,或者如果您需要使用其他文件/文件夹来完成此操作,则可以使用<代码> CopyCuths<代码>、<代码> DeleteDirectory < /C>和其他Team Foundation构建活动。如果在构建过程中仍然需要运行某些内容,可以使用

InvokeProcess
build活动,而不是创建自己的构建活动。

aspnet\u编译器上使用InvokeProcess时,我也遇到同样的问题。除了aspnet_编译器,我可以使用invokeprocess获得任何东西。这很奇怪。我在aspnet_编译器上使用invokeprocess时也遇到同样的问题。除了aspnet_编译器,我可以使用invokeprocess获得任何东西。这很奇怪。