我的Visual Studio解决方案包含两个主要项目:ClickOnce应用程序和WCF服务。
我有自己的Visual Studio Addin,发布我的ClickOnce应用程序,现在我也想发布WCF服务。
使用此代码,我更改属性以配置IIS路径:
Project clickOnceProj = GetProjectFromProjectName(MAIN_CLICKONCE_PROJECT_NAME);
Properties publishClickOnceProperties = (Properties) proj.Properties.Item("Publish").Value;
publishClickOnceProperties.Item("PublishUrl").Value = publishUrl;
publishClickOnceProperties.Item("InstallUrl").Value = installUrl;
publishClickOnceProperties.Item("UpdateUrl").Value = updateUrl;
clickOnceProj.Save();
然后我用这种方法发布:
public static bool CDCPUIEngine_Publish()
{
SolutionBuild2 slnBuild2 = (SolutionBuild2)DTEUtilities.DTE.Solution.SolutionBuild;
slnBuild2.Publish(true);
bool buildDone = slnBuild2.BuildState == vsBuildState.vsBuildStateDone && slnBuild2.LastBuildInfo == 0;
if (!buildDone) return false;
return slnBuild2.PublishState == vsPublishState.vsPublishStateDone && slnBuild2.LastPublishInfo == 0;
}
尽管我使用整个解决方案发布,但这样可以正常工作,只发布两个主要项目,ClickOnce和WCF Serivce。 ClickOnce项目没有错误并且发布得很好,但是WCF服务失败了。
但是如果我手动发布服务然后我使用我的VisualStudio Addin,这可以正常工作并在上次配置的文件夹中发布(我检查了该文件夹是使用我的Addin再次重新创建的)。
有没有人可以帮助我并告诉我如何在我的Addin中以编程方式更改目标位置(我尝试使用发布属性,如ClickOnce,但我不能因为它无法访问,我想因为不是ClickOnce项目)。
在接下来的图片中,我向您展示了我希望能够以编程方式更改属性的向导。