Jenkins更改程序集信息插件不适用于Linux主机和Windows从属服务器

时间:2017-01-24 20:08:21

标签: jenkins msbuild

我使用Linux Jenkins主服务器和Windows 10服务器进行配置。我正在使用它在slave上执行msbuild操作并生成安装可执行文件作为工件。我有一个Jenkins Windows 10主系统(我用作奴隶的同一个),这一切都很好。但是,当我远程运行相同的工作时,我得到了可怕的“CS1031”错误:

Properties \ AssemblyInfo.cs(1,1):错误CS1031:预期类型[C:\ slave2Workspace \ workspace \ SDB Projects \ CCMonitor \ CCMonitor \ CCMonitor \ CCMonitor.csproj]

这是指向文件中的第一个字符。如果我省略了使用Change Assembly Info插件的作业步骤,一切正常,我输出正确。我发现AssemblyInfo.cs文件缺少文件前面的字符0xEB 0xBB - 这些在翻译中被丢弃了。听起来像是一个字符集问题,但这只是这个插件步骤的一个问题。

是否需要以不同方式配置?

谢谢!

2 个答案:

答案 0 :(得分:4)

所以今天我遇到了同样的问题并找到了解决方案。不确定你是否想过这个,所以我想放弃解决方案以防万一。

原来是一个编码问题。汇编文件采用带签名的UTF-8编码。作为避免将字符添加到文件开头的解决方法,请将编码更改为UTF-8而不签名。

我是通过在notepad ++中打开文件,然后选择Encoding - >来完成此操作的。用UTF-8编码

答案 1 :(得分:2)

如果您使用的是Visual Studio(在我的情况下为2017)

  1. 打开有问题的文件
  2. 选择文件|另存为
  3. 在“保存”按钮上,出现一个带有选项的下拉列表,该选项说明编码保存
  4. 在带有编码的列表中,选择不带签名的UTF-8

VS可能会告诉您已经存在这样的文件,您可以选择覆盖它。 Commit>使用源代码控制(在我的情况下为git)推送,瞧-就是这样。