任何项目都在代码中发布,但是会发生错误。我该如何解决?

问题描述 投票:-1回答:1

    public Foo()
    {
        PublishProject();
    }

    internal static void PublishProject()
    {
        var project = GetActiveProject();
        var sb2 = project.DTE.Solution.SolutionBuild as SolutionBuild2;
        sb2.PublishProject(project.ConfigurationManager.ActiveConfiguration.ConfigurationName, project.UniqueName, true);
    }

       internal static EnvDTE.Project GetActiveProject()
       {
           EnvDTE.DTE dte = Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(Microsoft.VisualStudio.Shell.Interop.SDTE)) as EnvDTE.DTE;
           EnvDTE.Project activeProject = null;
           string endWith = ((dte.Solution.SolutionBuild as EnvDTE80.SolutionBuild2).StartupProjects as System.Array).GetValue(0).ToString();
           foreach (EnvDTE.Project project in dte.Solution.Projects)
           {
               if (project.FullName != null && project.FullName.EndsWith(endWith))
               {
                   return project;
               }
           }
           return null;
       }

输出:

1> ------发布已开始:项目:WebApplication2,配置:释放任何CPU ------

1>错误:对象引用未设置为对象的实例。

==========发布:0成功,0失败,0跳过===========

注意:我使用笔译进行了翻译。

我用代码发布Web应用程序项目(.net框架)。

我看here

我使用了这种方法,但是它给出的错误没有任何意义。

问题中是否缺少任何内容?

您能帮忙

c# visual-studio-extensions
1个回答
1
投票

任何项目都在代码中发布,但是会发生错误。我该如何解决?

根据您的描述,不仅这个项目而且其他项目都有发布问题。

如果安装Microsoft.VisualStudio.SDK nuget程序包,然后引用这些程序集:

using EnvDTE80;
using EnvDTE;
using Microsoft.VisualStudio.Shell;

我不会在您的代码方面遇到相同的发布错误。因此,我认为您的项目环境或VS IDE中存在一些错误。

请尝试以下建议:

建议

[1)删除C:\Users\xxx\AppData\Local\Microsoft\VisualStudio\15.0_xxx(15.0 is VS2019)\ComponentModelCache下的所有组件缓存,然后重新启动VS

[2)禁用Tools-> Extensions and Updates下的任何第三方扩展。

[3)删除bin输出文件夹中的*.dll.refresh文件(如果有)。

[4)关闭VS实例,删除.vs隐藏文件夹,binobj文件夹,然后重新启动项目。

[5)请检查您是否装有McAfee防病毒软件,如果有,请关闭它。

[6)如果您的VS2017不是最新版本,请进行更新以防某些修复或do a repair

希望它可以帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.