2008-11-06 34 views
3

我正在使用Visual Studio 2008 Team System版创建自定义项目模板。我也为自定义模板创建了一个自定义向导。从VS2008导出的项目模板,但它已损坏?

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

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

我在做什么错?

如果我不更改由VS2008创建的模板zip文件,它工作得很好。但我需要能够更新zip文件。如果我这样做,7zip/winzip修复了zip文件结构,然后VS2008不再喜欢这个模板。压缩文件中的文件夹中的文件不可访问。

我注意到标准模板似乎保持了平面文件结构。这不是嵌套的文件夹或任何东西。但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文件夹中作为平面文件夹结构?如果是的话,是否有VS2008的修复程序,以便我不必手动修复模板存档?

回答

0

同样的问题在这里。我通过使用<ProjectItem>MyFolder\MyFile.cs</ProjectItem>而不是<Folder>...<Folder>来解决它。

PS:TargetFileName在VS2008 + Windows7中不适用于我。

0

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

你说VS2008无法访问模板中的所有文件,但这里至少得到的zip文件不会导致VS2008出现任何问题。

+0

只是为了确认,您的示例zip文件是否具有嵌套文件夹结构或平面文件夹结构? – BlackMael 2009-03-06 09:09:22

+0

是的,我刚刚创建了一个测试项目模板,其中包含一个包含cs文件的子文件夹。模板的vstemplate文件在项目模板中有元素反映目录结构。我使用WinRAR解压并重新创建ZIP(我在家里安装了这个软件)。 – mackenir 2009-03-06 22:08:04

4

您不需要修改存档的内容以保持平坦。

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

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