Tag: build process

比较发布版本的产品

我需要比较VS2005的构建输出,以确保我可以重现完全相同的产品。 当我在发布中一个接一个地做两个构建并比较生成的文件我得到不同的文件,做文本比较似乎不仅仅是日期时间不同 我如何构建以便每次都能重现完全相同的产品?

C#到C ++ / CLI到C DLL System.IO.FileNotFoundException

我收到System.IO.FileNotFoundException: The specified module could not be found运行调用C ++ / CLI程序集的C#代码时System.IO.FileNotFoundException: The specified module could not be found ,C ++ / CLI程序集又调用纯C DLL。 只要实例化一个调用纯C DLL函数的对象就会发生这种情况。 BackingStore是纯C.CPPDemoViewModel是C ++ / CLI调用BackingStore它有一个对BackingStore的引用。 我尝试了最简单的案例 – 添加一个新的C#unit testing项目,它只是试图创建一个在CPPDemoViewModel中定义的对象。 我从C#项目添加了一个引用到CPPDemoViewModel。 只需添加对CPPDemoViewModel的引用,C ++ / CLI测试项目就可以正常工作,因此它可以在语言之间进行。 我正在使用Visual Studio 2008 SP1和.Net 3.5 SP1。 我正在构建Vista x64,但一直小心确保我的平台目标设置为x86。 这感觉就像一些愚蠢和明显的我想念但是浪费时间试图私下解决它会更加愚蠢,所以我在这里让自己尴尬! 这是对一个移植大量遗留C代码的项目的测试,我将其保存在一个带有在C ++ / CLI中实现的ViewModel的DLL中。 编辑检查目录后,我可以确认尚未复制BackingStore.dll。 我有一个标准的独特项目文件夹,使用典型的多项目解决方案创建。 WPFViewModelInCPP 备份存储 […]

VS2008 – 为调试/发布配置输出不同的文件名

使用Visual Studio 2008构建C#应用程序时,是否可以为每个配置设置不同的输出文件名? eg MyApp_Debug.exe MyApp_Release.exe 我尝试了一个后期构建步骤,通过附加当前配置来重命名该文件,但这似乎是一种糟糕的方法。 另外,这意味着当按F5开始调试时,Visual Studio无法再找到该文件。

生产应用程序的PDB文件和“优化代码”标志

我应该何时在生产版本中包含PDB文件? 我应该使用Optimize code标志吗?这会如何影响我从exception中获得的信息? 如果有明显的性能优势,我会想要使用优化,但如果不是,我宁愿有准确的调试信息。 通常为生产应用程序做什么?

为什么在干净的构建之后生成了不同的dll,没有代码更改?

当我做一个干净的构建我的C#项目时,生成的dll与之前构建的dll(我单独保存)不同。 没有进行任何代码更改,只需清理和重建。 Diff显示DLL中的一些字节有变化 – 很少接近开头,很少接近结尾,但我无法弄清楚这些代表什么。 有没有人对这种情况发生的原因有什么见解以及如何预防? 这是使用Visual Studio 2005 / WinForms。 更新:不使用自动版本递增或签署程序集。 如果它是某种时间戳,如何阻止VS写它? 更新:在查看Ildasm / diff之后,看起来以下项目有所不同: PE头中的两个字节位于文件的开头。 { guid }部分 字符串表的隐藏部分接近结尾(不知道为什么,我没有改变字符串) 文件末尾的部件信息部分。 如果可能的话,不知道如何消除这些……

MSBuild将动态生成的文件复制为项目依赖项的一部分

我有一个自定义的msbuild任务,它生成一些输出文件到ProjectA的输出目录($(TargetDir))。 目前的代码是这样的: ProjectB正在引用ProjectA,但问题是在构建ProjectB时,MyCustomTask生成的文件不会复制到ProjectB的输出目录中。 我们如何使用MSBuild将动态生成的附加文件作为项目依赖项的一部分进行复制?