【问题标题】:VS2008 auto-generated files versus source control read-only checkout: Best practices?VS2008 自动生成的文件与源代码管理只读签出:最佳实践?
【发布时间】:2010-02-19 04:24:53
【问题描述】:

我们有一个使用 Visual Studio 2008 构建的代码库,其中包含资源文件 (SR.resx)。某些工具会从 SR.resx 创建一个名为“SR.Designer.cs”的文件,VS2008 会将其添加到源代码管理中。首次创建时一切正常。当第二个开发人员检查他机器上的源时,事情变得很糟糕。

我们使用 Perforce,它以只读方式检出文件。

如果第二个开发人员从头开始,第一次构建通常会失败并显示消息“无法写入强类型资源类文件“SR.Designer.cs”。我们需要将所有文件设置为读写为了进行构建。尽管 SR.Designer.cs 文件没有更改(在构建后通过“diff”检查)。

这也对我们的构建服务器造成严重破坏,我们希望从一个空目录开始构建,拉取源代码并构建。

人们如何处理这种情况?

生成的代码包含:

/// <summary>
///   A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.

我可以以任何方式配置 StronglyTypedResourceBuilder 吗?

【问题讨论】:

  • 您运行的是哪个版本的 P4V/P4SCC 和 P4D?
  • P4V/P4SCC 为 2008.2; P4D 是 2007.2 版

标签: visual-studio resx


【解决方案1】:

将相关文件的文件属性更改为 +w(在工作区中始终可写)。在命令行上,您可以使用

p4 reopen -t +w <file>

您也可以在 P4V 中通过 Actions -> Change Filetype 执行此操作。

【讨论】:

  • 谢谢,这就行了。我唯一的保留意见是每次构建都会生成相同的 .cs 文件。我想我可以弄清楚 StrongTypeResourceBuilder 遵循的规则;或者我可以添加一个脚本来将每个 .cs 文件与 perforce 中的文件进行比较。
  • 不管怎样,我最近写了一个两步构建的 MSBUILD 项目:首先,删除所有 SR.resx 文件;其次,运行解决方案文件。这对我们很有效。
  • @SteveRobbins 什么是琐事!?
猜你喜欢
  • 2012-08-24
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多