Office 插件版本不正确

Incorrect version of office plugin

我开发了一个 office 插件,在 AssemblyInfo.cs 我指定了

 [assembly: AssemblyVersion("1.0.3.17")]
 [assembly: AssemblyFileVersion("1.0.3.17")]

但是,在我安装我的插件后,add/remove 程序下的版本是 1.0.0.0

所以我检查了在构建过程中创建的 VSTO 文件(我用 VS2013 做的)并看到在 assemblyIdentity 标签内,版本号是 1.0.0.0(而不是1.0.3.17)..

为了安装插件,我使用 VSTOInstaller.exe 并将我的 VSTO 文件传递​​给它..

那么如何更改 VSTO 文件中的版本?或者在更一般的意义上 - 我应该在哪里指定将在 Add/Remove 部分中显示的版本?

谢谢, 诺姆

要更改 VSTOIntaller.exe 使用的版本号,您必须在项目属性页面中更改 Publish Version

要在 Project 上到达 Right Click,请转到 Properties 和 select 左侧的 Publish 选项卡,在那里您会找到Public Version.

您不必发布项目,构建过程会获取该信息并将其写入生成的 .vsto 文件。

.vsto中你可以找到XmlElementAssemblyIdentity作为例子:

<assemblyIdentity name="xxxx.vsto" version="1.2.3.4"

您还可以在项目文件中找到该信息(*.csproj for C#),在那里您会找到一个 XmlElement ApplicationVersion 作为示例:

<ApplicationVersion>1.2.3.4</ApplicationVersion>

要按照 OP 的要求通过代码更改此信息,我建议提出一个新问题,因为他打算在构建过程中修改它,而我只能想办法在构建之前或之后进行修改.

例如,要在实际插件之外的构建之前更改它,您可以使用以下内容:

var file = @"xxxx.csproj";
var xDoc = XDocument.Load(file);
var ns = xDoc.Root.Name.Namespace;
xDoc.Element(ns + "Project")
    .Element(ns + "PropertyGroup")
    .Element(ns + "ApplicationVersion").Value = "1.2.3.5";

xDoc.Save(file);