我的c#应用程序如何从VisualStudio发布系统中显示PublishUrl ?



我想在c#应用程序的帮助菜单中包含PublishUrl值。主要是为了帮助调试,如果自动更新不工作。如果用户不能访问引用的网络位置,这就解释了为什么更新不能工作,并且是用户找出问题所在的一个步骤。我看到的问题主要来自新用户在网络上没有足够的权限,所以这个问题不是应用程序可以纠正的。

我只是想做一些简单的事情,比如

String info = "Publish URL is " + PublishUrl;
DiaglogResult res = MessageBox.Show( info, "Help", MessageBoxButtons.OK, MessageBoxIcon.Information);

这个问题有点特定于Visual Studio (Community 2022 64位),因为PublishUrl是在项目的.csproj文件中定义的:

<PropertyGroup>
<PublishUrl>\serverSharexxxyyyAppName</PublishUrl>

问题是上述代码片段中的PublishUrl未定义,我不确定如何找到正确的路径来访问它。

您将需要创建配置文件,确保通过更改visual studio中的属性将其复制到输出文件夹。只是把它拼凑在一起,但我相信你可以做得更好,它会工作的。

把这是你自己的类。

public string GetPublishPath()
{
using (var reader = XmlReader.Create($"{AppDomain.CurrentDomain.BaseDirectory}\Properties\PublishProfiles\FolderProfile.pubxml"))
{
reader.MoveToContent();
while (reader.Read())
{
if (reader.NodeType.ToString() != "Whitespace" && reader.NodeType == XmlNodeType.Element)
{
var el = XNode.ReadFrom(reader) as XElement;
var publishDir = el.Descendants().FirstOrDefault(x => x.Name.LocalName == "PublishDir").Value;
return publishDir;
}
}
}
return string.Empty;
}

祝你好运!

最新更新