【发布时间】: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