Tag: prebuild

从C#中的代码访问prebuild宏(如$(SolutionDir)和$(DevEnvDir)的简单方法是什么?

现在我正在考虑在预构建事件中写入文件的路径,然后在代码中从该文件中读取,但我想知道是否有更简单更优雅的方式。 编辑:这是一个跟进帮助,一步建立所有项目+安装程序(.NET + WiX),因为我没有真正得到答案,看看我是否可以得到一个更简单的问题的答案。

MS-Build BeforeBuild未触发

我正在定制一个.csproj项目,以便在主构建之前运行一些自定义任务。 但是,我根本无法执行任务。 我取消注释.csproj文件中的元素,并添加了一个简单的Message任务,但是当我构建时,消息没有出现在我的输出中,所以看起来任务没有运行。 所以这个片段不输出消息; 清单1:没有消息出现 但是,如果我搞砸了一些属性,我可以让.csproj完全无法执行; 清单2:MSBuild配置错误 请注意XXImportance属性。 我得到的构建错误是 My.csproj(83,46): error MSB4064: The “XXImportance” parameter is not supported by the “Message” task. Verify the parameter exists on the task, and it is a settable public instance property. 这表明正在解析XML,已找到Message类,并且该类正在反映可用属性。 为什么这项任务不会执行? 我正在使用3.5框架。 更新1:在@Martin的建议下,我试图在控制台上运行MSBuild,并得到了这个错误; c:\path\to\my.csproj(74,11): error MSB4019: The imported project “C:\Microsoft.CSharp.targets” was not found. Confirm that the path […]

预构建MSBuild任务以更新AssemblyInfo与内置exe不同步

我在Visual Studio 2008中使用调用msbuild的预构建任务: C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe $(MSBuildProjectDirectory)\version.targets /p:Configuration=$(ConfigurationName) 在version.targets中,我正在更新AssemblyInfo.cs文件以替换版本信息: 当我通过Visual Studio 2008构建项目时,它构建没有任何问题。 但是,当我查看生成的exe的版本信息时,它包含上一个时间戳,即使AssemblyInfo.cs已使用“正确”更改。 似乎主编译任务没有看到预编译的变化,它总是落后。 我做错了什么想法?