Ric*_*gan 20 c# msbuild prebuild visual-studio generated
我在Visual Studio 2008中使用调用msbuild的预构建任务:
C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe $(MSBuildProjectDirectory)\version.targets /p:Configuration=$(ConfigurationName)
Run Code Online (Sandbox Code Playgroud)
在version.targets中,我正在更新AssemblyInfo.cs文件以替换版本信息:
<FileUpdate
Encoding="ASCII"
Files="$(MSBuildProjectDirectory)\Properties\AssemblyInfo.cs"
Regex="AssemblyInformationalVersion\(".*"\)\]"
ReplacementText="AssemblyInformationalVersion("Product $(ConfigurationString) ($(buildDate))")]"
/>
Run Code Online (Sandbox Code Playgroud)
当我通过Visual Studio 2008构建项目时,它构建没有任何问题.
但是当我查看生成的exe的版本信息时,它包含上一个时间戳,即使AssemblyInfo.cs已经使用"正确"更改了.
似乎主编译任务没有看到预编译的变化,它总是落后.
我做错了什么想法?
lak*_*tak 25
我不认为你做错了什么 - 这是一个错误.
我在这里报告了 - 检查你是否可以重现它并添加验证,也许我们可以通过MS修复它.
编辑:我尝试了"Si"的建议来更新"BeforeBuild"事件中的文件 - 但是我仍然得到与Visual Studio 2008/SP1相同的错误结果.
更新/解决方法:MS已回复错误报告.作为一种解决方法,您可以添加
<UseHostCompilerIfAvailable>FALSE</UseHostCompilerIfAvailable>
Run Code Online (Sandbox Code Playgroud)
到你的csproj文件.
Oli*_*ais 14
<UseHostCompilerIfAvailable>FALSE</UseHostCompilerIfAvailable>虽然接受的解决方案和链接文章都没有指定该行应该添加到文件中的第一个 <PropertyGroup>元素.csproj,但该技巧仍为+1 .
它也只是Visual Studio的问题,因为从同一文件的命令行调用msbuild.csproj(没有技巧)将立即看到生成的代码文件(而不是以前的版本).
此外,我想建议将此主题标记为以下内容,因为我必须挖掘很多才能找到它:
| 归档时间: |
|
| 查看次数: |
11180 次 |
| 最近记录: |