Tag: msbuild task

AssemblyTitle一旦设置就永远不会改变,我希望每个配置都改变它

我想根据产品名称更改下面屏幕截图中显示的文字。 我知道,该文本来自Assembly.Title属性,它是一个只读属性,因此无法在运行时更改。 那么如何在编译时更改它? 我们将应用程序出售给多个客户,应用程序的名称应根据客户进行更改。 我们为每位客户提供配置。 因此,在构建时,应根据配置选择程序集标题。 有什么建议怎么解决这个问题? 更新: 我尝试了评论中给出的一些建议,我发现如下: 使用项目属性中的程序集信息弹出窗口设置文本或直接在AssemblyInfo.cs文件中更改它后,它在任务栏中正确显示。 如果我再次更改它,更改的文本不会显示在任务栏中,即。 它始终显示第一次设置的文本。 我尝试删除文件,甚至重新启动系统,但它没有帮助。 然后我重命名了文件(即exe文件),然后它正确显示了更改的文本 。 如果我将其重命名为原始名称,则会显示第一个设置文本。 可能是什么原因?

在c#项目中使用XSD Build任务

如何在ac #project中使用c ++ XSD Task ? 我已经在csproj文件中创建了这样的任务: 但是构建输出说,尽管intellisense在编辑项目文件时为我提供了XSD任务: Error 1 The “XSD” task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is “public” and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly […]

如何从多个源文件创建MSBuild内联任务

我有几个CS文件(一个DLL项目),都在一个目录中,其中一个类扩展了ITask。 现在,很容易记录如何从一个源文件创建内联任务,但是可以从多个源文件中执行此操作吗? 我无法编译和使用DLL作为任务,如果我不必将所有源都塞入一个大的源文件,我更愿意。 我的目标是:

MSBuild,自定义任务运行自定义工具生成linq到sql模型的类?

我有以下情况。 我们使用存储过程来访问数据库,我们使用LiNQ 2 SQL来生成类,或者我们使用Unplugged LINQ to SQL Generator来实现此目的。 它已经作为自定义工具运行,但是对生成的类进行区分是一个巨大的痛苦。 我们想自动生成类但是将它从版本控制中排除,所以我开始创建一个msbuild任务。 发现这篇文章和这篇文章,但我不能自己解决这个问题。 我添加了一些代码,任务如下所示: public class GenerateDesignerDC : Task { public ITaskItem[] InputFiles { get; set; } public ITaskItem[] OutputFiles { get; set; } public override bool Execute() { var generatedFileNames = new List(); foreach (var task in InputFiles) { string inputFileName = task.ItemSpec; string outputFileName = […]

在签署EXE时,“文件具有与清单中指定的计算哈希值不同”错误

我的ClickOnce安装失败并显示错误: File,WindowsFormsProject.exe具有与manifest中指定的不同的计算哈希值。 我使用MSBuild生成ClickOnce部署包。 构建脚本中的相关行: WindowsFormsProject.csproj具有签署可执行文件的Post-Build步骤,如下所示: signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName) 麻烦的是,当我查看构建日志时,我发现清单是在Post-Build事件执行之前生成的。 因此,哈希码不匹配也就不足为奇了。 构建日志中的相关行: _CopyManifestFiles: WindowsFormsProject – > … \ WindowsFormsProject.application … PostBuildEvent: 成功签名:… \ WindowsFormsProject.exe 所以,问题是: 在任务期间生成清单之前,有没有办法对程序集进行签名? 有没有办法在构建完成后重新生成清单(并且只显示清单),以便哈希代码再次匹配? 或者,如果你能想到问题的不同解决方案,我会很感激你的想法。

Visual Studio 2008锁定自定义MSBuild任务程序集

我正在开发一个自定义MSBuild任务,它构建一个ORM层 ,并在项目中使用它。 我受到Visual Studio保留MSBuild任务DLL而不放手的行为的阻碍。 我想像这样组织我的解决方案; My Solution | +- (1) ORM Layer Custom Task Project | | | +- BuildOrmLayerTask.cs // here’s my task | +- (2) Business Logic Project // and here’s the project that uses it. | +- 但是,当项目(2)构建时,它会从项目(1)锁定到程序集。 所以现在我无法在不关闭解决方案并重新打开它的情况下再次构建项目(1)。 有没有什么方法可以组织事情,以便自定义构建任务不被Visual Studio锁定?