wmjordan / Codist

A visual studio extension which enhances syntax highlighting, quick info (tooltip), navigation bar, scrollbar, display quality, and brings smart tool bar with code refactoring to code editor.
https://marketplace.visualstudio.com/items?itemName=wmj.Codist
GNU General Public License v3.0
317 stars 29 forks source link

版本自动生成器时机问题 #337

Open 0xblack opened 1 week ago

0xblack commented 1 week ago

[7.9.3.9971 扩展市场下载版本]: 在生成项目的触发版本自动维护,可能出现滞后现象,就是版本生成之前,assemblyInfo.cs可能会在被读取以后才被更新到,导致版本号不是最新创建的

wmjordan commented 1 week ago

0xblack commented 1 week ago

不好意思,太尴尬,发布的时候没提交成功.版本自动生成的时候,时间点有问题,执行build的时候,assemblyinfo.cs中的配置已经被读取了,才会被自动插件修改,这也许是偶发,但在我本地成功复现过多次,版本都会滞后一个号

wmjordan commented 1 week ago

反正我还没遇到过这样的情况。按照VS提供的接口,更改assemblyinfo的时间应该在项目构建之前。

0xblack commented 6 days ago

非常感谢跟进.是不是我的设置有什么没注意到的地方呢?

有没有可能和项目复杂程度或某种没被覆盖的边界造成的,我项目相对较为复杂,且是混合模式的,项目中有c#和c++,c#引用了c++的库.我早上再次复现了一下,还是这样,我昨天18:12分编译了以后,就存档了,早上来修改代码以后,编译,读的还是昨天的版本号,1812,但我看assemblyinfo种已经是早上的了 image

wmjordan commented 4 days ago

仔细看了一下,最近编译的时候的确是变成这样子了,暂时也没什么好办法来解决。

wmjordan commented 4 days ago

这个问题也不是百分之一百可以重复。今天早上试了好几次,大部分情况下都没问题。

VS 在编译过程中可能有一些问题,如果是多个项目的输出文件放在同一个目录下,需要在 MsBuild 的项目文件(就是 csproj 文件)指定一个输出到公共目录的属性:

    <PropertyGroup>
        <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
0xblack commented 3 days ago

嗯,我尝试加了上面这个属性到配置文件,貌似问题依然存在,但我在过程中,观察到了一个现象.问题似乎不全是出现在了顺序环节,更可能是出现在了机制上.当执行编译的时候,其实修改assemblyinfo.cs的时机是正确的,但是就是在修改以后,没有执行保存操作,这个可以通过vs打开assemblyinfo.cs观察到上面的*,这样,新版本号没生效.如果再次执行编译操作,可以看到文件被保存了,由于没有修改任何代码,版本号就没有再次被自动更新,同时版本号生效了.我这边目前大概是这么个情况.

wmjordan commented 2 days ago

请到此下载新的测试版看看: https://github.com/wmjordan/Codist/issues/334

0xblack commented 12 hours ago

好的,感谢大佬跟进