【问题标题】:Exported Project Template from VS2008 but it is corrupted?从 VS2008 导出项目模板但它已损坏?
【发布时间】:2010-07-27 02:01:54
【问题描述】:

我正在使用 Visual Studio 2008 Team System 版本创建自定义项目模板。我还为自定义模板创建了一个自定义向导。

所以我必须更新 vstemplate 文件来告诉模板使用我的自定义向导。但存档已损坏!

7zip 认为存档中的文件夹使用非标准 zip 压缩。最新的 winzip 认为文件夹上的 CRC 标头与主 CRC 标头不匹配。

我做错了什么?

如果我不更改 VS2008 创建的模板 zip 文件,它就可以正常工作。但我需要能够更新 zip 文件。如果我这样做了,7zip/winzip 会修复 zip 文件结构,然后 VS2008 不再喜欢该模板。无法访问 zip 文件内文件夹中的文件。

我确实注意到标准模板似乎保留了平面文件结构。那是没有嵌套文件夹或任何东西。但是 vstemplate 文件具有重新创建原始文件夹结构的 targetfilename 属性。

例如,而不是...

<Folder Name="My Project" TargetFolderName="My Project">
    <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem>
</Folder>

标准的 vstemplate 定义了以下...

<ProjectItem ReplaceParameters="true" TargetFileName="My Project\AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem>

我刚刚对上述内容进行了一些思考。它们实际上是一样的吗?

是原始zip文件的创建有问题吗?

zip 文件中的文件夹结构是否会出错?

是否应该将所有文件作为平面文件夹结构添加到 zip 存档中?如果是这样,是否有针对 VS2008 的修复,以便我不必手动修复模板存档?

【问题讨论】:

    标签: visual-studio-2008


    【解决方案1】:

    您无需将存档的内容修改为扁平化。

    诀窍是在编辑存档的解压缩内容之后,而不是选择文件夹并对其进行压缩,而是打开文件夹并选择所有文件(和文件夹,如果存在),然后将其压缩。

    这是阻止 Visual Studio 将存档识别为模板的原因。这应该适用于 7-Zip、WinRAR 或任何你碰巧更喜欢 WinZip 的英国媒体报道软件。

    【讨论】:

    • 嗯,这正是我做错的,但是当你打开它并重新打包时你只是不要考虑这个。
    【解决方案2】:

    同样的问题。我通过使用&lt;ProjectItem&gt;MyFolder\MyFile.cs&lt;/ProjectItem&gt; 而不是&lt;Folder&gt;...&lt;Folder&gt; 解决了这个问题。

    PS:TargetFileName 在 VS2008 + Windows7 中对我不起作用。

    【讨论】:

      【解决方案3】:

      看起来 Visual Studio 创建了非标准的 ZIP 文件。我的解决方案是解压VS生成的模板zip文件,然后用WinZip重新压缩文件。

      你说当你这样做时VS2008不能访问模板中的所有文件,但这里至少生成的zip文件不会对VS2008造成任何问题。

      【讨论】:

      • 只是为了确认一下,您的示例 zip 是嵌套文件夹结构还是平面文件夹结构?
      • 是的,我刚刚创建了一个测试项目模板,其中包含一个包含 cs 文件的子文件夹的项目。模板的 vstemplate 文件在项目模板中具有反映目录结构的 元素。我使用 WinRAR 解压缩并重新创建 ZIP(我在家里安装了这个)。
      猜你喜欢
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      相关资源
      最近更新 更多