【问题标题】:Any project publish in code but an error occurs. How do i solve?任何项目在代码中发布但发生错误。我该如何解决?
【发布时间】:2020-04-15 14:55:43
【问题描述】:

    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 跳过 ==========

注意:我是用 translate 翻译的。

我在代码中发布 Web 应用程序项目 (.net framwork)。

我看here

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

这个问题有什么遗漏吗?

你能帮忙

【问题讨论】:

  • 这根本没有帮助。您没有描述问题,没有告诉我们您已经尝试过什么,甚至没有以可以理解的方式显示您正在尝试完成的工作。请使用Tour 并阅读How to ask good questions?。不要指望社区只看它并给你答案。
  • 问题说明:Object reference not set to an instance of an object。如果不幸的是,我不明白这适用于哪个对象。您需要确保您的对象引用是有效的,而不是null,然后才能使用它们。
  • 我调试了 Any value is not empty 然后会给出异常。在输出屏幕上给出错误。
  • 您在构建项目时是否遇到任何其他错误?似乎它未能发布该项目。我想知道您是如何在net framework web项目中导入相关的sdk api的。另外,请将当前的cs文件分享给我们。

标签: c# visual-studio-extensions


【解决方案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 Instance,删除.vs隐藏文件夹、binobj文件夹然后重启你的项目。

5)请检查您是否安装了 McAfee 防病毒软件,如果有,请将其关闭。

6)如果你的VS2017不是最新版本,请更新它以防修复或do a repair

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 2021-06-11
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多